1. 变量提升: 浏览器在运行代码之前会进行预解析,不论var声明的变量处于当前作用域的第几行,都会提升到作用域的头部。
2. 只要块级作用域内存在let命令,它所声明的变量就“绑定”这个区域,不再受外部的影响。
3. let不允许在相同作用域内,重复声明同一个变量。
var a = 10; let a = 6;
var a = 20; let a = 8;
console.log(a);//20 console.log(b); //报错Uncaught SyntaxError
4.const定义的变量不可以修改,而且必须初始化。
const a = 2;//正确2
const a;//错误,必须初始化
5.let/const是使用区块作用域;var是使用函数作用域