从ECMA6开始引入了另外两个声明变量的方式。1、以前的var声明变量都会被提前,而且没有局部变量,并且你声明的变量只会分为全局变量跟函数内的变量。 现在let可以声明局部变量,例如 { var a=1; let b=2; } console.log(a); console.log(b); //最后输入结果为 1,b is not defined.b未定义,在大括号之外的b已经出了作用域了,所以会报错。 但是a依然会被访问到。