Js中let和var的区别
ES6 新增了let命令,用来声明局部变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效,而且有暂时性死区的约束。
没看明白上面那句话也没事:
我举一个例子:
结果 undefind 1 没有问题吧
那几行代码等价这个:
明白了吧 a 是undefined 未定义
当你这样写的时候 就会报错:
Uncaught ReferenceError: Cannot access ‘a’ before initialization
你把ta写前面就没事,let没有变量提升的性质
通过 var声明的变量有初始值 undefined,而通过 let 声明的变量直到定义的代码被执行时才会初始化。在变量初始化前访问变量会导致ReferenceError。
let允许您声明仅限于块语句或使用它的表达式的范围的变量,而不像var关键字那样,var关键字全局定义变量,或局部定义整个函数的变量,而不考虑块范围。var和let之间的另一个区别是,后者只有在解析器对其求值时才初始化为一个值.