let
暂时性死区:在代码块内,使用let命令声明变量之前,该变量都是不可用的,这个区域被称为“暂时性死区”
1.let是在所在代码块中有效,并且没有变量提升,因此在下列例子中会报错。应先定义a,再赋值。
2.let同一作用域下不能够重复声明
3.变量会往外找不会往里找。第十一行的v3未定义因此会报错
const
const声明一个只读的常量,一旦声明其值不能改变且需立即初始化。其他与let用法一样。
它保存的是数据所在的地址。const命令只是保证地址不变,并不保证该地址的数据不变,对象本身是可变的,可以添加、修改属性,
let和const
let和const命令所声明的全局变量不属于顶层对象属性,另一方面也允许var和 function命令声明的全局变量依旧是顶层对象的属性。
let和 const能提供更好的作用域识别,降低了变量被污染的风险。