ES6学习-3 const

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 30
3 }

到于为啥可以这样,用网上大神的说法是 一开始  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

 

posted @ 2021-05-20 21:36  郭郭老师  阅读(74)  评论(0编辑  收藏  举报