一 let
1、let 局部变量 不会变量提升,在运用时候要先声明在调用,var 全局变量 会产生变量提升;
2、在块级作用域中纯在let const,他所生命的变量就绑定在这个区域,未经过声明调用会报错,在语法上被称为“暂时性死区”(temporal dead zone,简称TDZ);
3、let不允许在同一作用域中,重复声明同一个变量,因此不能在函数内部重新声明变量,可以在函数的代码块中声明
二、块级作用域
Es6允许块级作用域任意嵌套,外成的作用域无法读取内层的作用域;
内层的作用域中变量可以重新定义外层的变量
三、const
1、只读常量,声明的值不可以改变
2、与let一样在块级作用域中声明,不能再声明之前调用变量,同个变量不可声明两次,同时也存在暂时性死区;
3、const只能保证变量名所指的地址不变,并不保证该地址的数据不变;