所声明的变量只在let命令所在的代码块有效
变量i是在let声明,因此每次循环i都是一个新的变量,因此最后输出的是6
for循环设置循环变量的那一部分是一个父作用域,循环体内部是一个子作用域,见代码:
不存在变量提升
变量应在声明语句之后才可以使用,否则会报错,见代码:
暂时性死区
只要块级作用域存在let,它所声明的变量就会"绑定"这个区域,不再受外部的影响,见代码:
有些"死区"比较隐秘,见代码:
本质就是:只要进入当前作用域,所要使用的变量就已经存在,但是不可获得,只有等到声明变量的哪那一行代码出现,才可以获得和使用该变量
不允许重复声明
let不允许在相同作用域内重复声明同一个变量,见代码:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。