1、let命令
let声明的变量只在let命令所在的代码块内有效。
结果:
for 循环变量的部门是父作用域,循环体内部是一个单独的子作用域。所以存在下面函数
表明函数内部变量c与循环变量c在不同作用域,有各自单独的作用域。
暂时性死区:在区块中存在let和const命令,从一开始就形成了封闭的作用域,在声明之前就使用变量就会报错。
重点:强制规定,变量一定要在声明之后,才能够被使用的
不允许在相同作用域内,重复声明同一个变量
块级作用域:
该函数存在两个代码块,都声明了变量n。运行后输出5.这表示外层代码块不受内层代码块的影响。如果两次都用var,最后输出的值就是10
2、const命令
const声明一个只读的常量,一旦声明,常量的值就不能改变。
const只声明常量不进行赋值也会报错。所以const一旦声明变量就必须立即初始化。
3、数组解构
4、对象解构
对象解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量,真正被赋值的是后者而不是前者。
解构使用圆括号只有一种情况:赋值语句的非模式部分,才可以使用圆括号。