所声明的变量只在let命令所在的代码块有效

变量i是在let声明,因此每次循环i都是一个新的变量,因此最后输出的是6

for循环设置循环变量的那一部分是一个父作用域,循环体内部是一个子作用域,见代码:

不存在变量提升

变量应在声明语句之后才可以使用,否则会报错,见代码:

暂时性死区

只要块级作用域存在let,它所声明的变量就会"绑定"这个区域,不再受外部的影响,见代码:

有些"死区"比较隐秘,见代码:

本质就是:只要进入当前作用域,所要使用的变量就已经存在,但是不可获得,只有等到声明变量的哪那一行代码出现,才可以获得和使用该变量

不允许重复声明

let不允许在相同作用域内重复声明同一个变量,见代码:


玛拉_以琳
8.7k 声望6.2k 粉丝