let
1. let声明类似于var,但是let只在所在的代码块中有效,可以很好的用在for循环中代替var,记住只能在所在代码块中使用

2. 在使用let变量之前,一定要先声明let才行,不然会报错

3. let不允许在相同代码块中重复声明同一个变量

4. 同样他不能在函数内重新声明参数

5. let实际上为js新增了块级作用域

6. let声明的变量,不是顶层对象的属性
conset
conset的本质是,变量指向的那个内存地址不得改动。
1. conset声明一个只读常量,一旦声明了,就不能修改
2. 和let一样,只在声明所在的块级作用域内有效。要在使用之前声明。在同一作用域中不可以重复声明。
暂时性死区的本质
只要进入当前作用域,所要使用的变量就已经存在,但是不可获取,只有等到声明变量的代码出现,才可以获取和使用该变量
网友评论