本文共 712 字,大约阅读时间需要 2 分钟。
const
声明一个只读的常量。一旦声明,常量的值就不能改变,所以在声名时就进行赋值。
const
的作用域与let
命令相同,只在声明所在的块级作用域内有效。
const
命令声明的常量,同样存在暂时性死区,只能在声明的位置后面使用。
const 很好理解,但有几个注意事项:
const 可以声名对象,声名对象时,对象的属性是可以发生变化,只要对象指向的内存不变就可以。举个栗子:
1 const user={name:"郭郭",sex:"男"}2 console.log(user.name); //输出 郭郭3 user.name="小郭郭";4 console.log(user.name); //输出 小郭郭
const 可以用在循环中,一个常量用在循环中有些不可理解,但这样确实是可以的,举个栗子:
1 for (const tmpVal of ["A","B","30"]) {2 console.log(tmpVal); //输出 A B 303 }
到于为啥可以这样,用网上大神的说法是 一开始 tmpVal 指向了一个对象,遍历数组时,只是对象的值发生了变化,反正知道这种用法就行,别看到这种代码就懵逼就可以了,正常循环中还是用let显得正常一点。
虽然 const 可以用在循环中,但也仅限于 of 或 in 的循环,正常的计数循环是会报错的,因为循环的计数是不停变化的。
1 for (const i=0 ,i< 10,i++) {2 console.log(i)3 }5 控制台输出:6 SyntaxError: Identifier 'i' has already been declared
转载地址:http://uqkwk.baihongyu.com/