什么是变量提升?

212 阅读1分钟

面试中常问的一个问题:知道变量提升吗? 或者问,var和let的区别是什么:其中答案之一肯定有var会变量提升,而let不会变量提升。

讨论:

console.log(a);
var a = 1;//输出的是undefined
console.log(b);
let b = 1; //输出报错, Uncaught ReferenceError: b is not defined

image.png

因为var在声明变量的时候,会提到当前作用域的顶端,而赋值操作在原处不变 上面的例子相当于:

var a;
console.log(a);
a = 1;