let
es6 语法
let
是作用域是块级的,即{}内的范围如果未声明变量就使用的话,报错ReferenceError,而
var
则会报错undefined(不存在变量提升)-
只要块级作用域内存在
let
命令,它所声明的变量就“绑定”这个区域,不再受外部的影响。在代码块内,使用let
命令声明变量之前,该变量都是不可用的。这在语法上,(暂时性死区)var tmp = 123; if (true) {
tmp = 'abc'; // ReferenceError
let tmp;
}
var
- 标准javaScript写法,var的作用域只能作用于局部变量和全局变量
const
- const与let的作用域一样,但是一旦赋值了const就不能再改变了,只是引用第一不能被改变,但是变量的值还是可以改变的。