面试中常问的一个问题:知道变量提升吗? 或者问,var和let的区别是什么:其中答案之一肯定有var会变量提升,而let不会变量提升。
讨论:
console.log(a);
var a = 1;//输出的是undefined
console.log(b);
let b = 1; //输出报错, Uncaught ReferenceError: b is not defined
因为var在声明变量的时候,会提到当前作用域的顶端,而赋值操作在原处不变 上面的例子相当于:
var a;
console.log(a);
a = 1;