面试题答案
一键面试- 输出结果:
undefined
2
- 原因解释:
- 在JavaScript中,变量提升(hoisting)机制会将变量声明提升到函数作用域的顶部,但是变量的初始化不会提升。
- 当执行
console.log(a);
时,由于变量a
声明被提升,此时a
已经存在于当前作用域,但还未被初始化,所以输出undefined
。 - 当执行到
var a = 2;
时,a
被初始化为2
,所以第二个console.log(a);
输出2
。
undefined
2
console.log(a);
时,由于变量a
声明被提升,此时a
已经存在于当前作用域,但还未被初始化,所以输出undefined
。var a = 2;
时,a
被初始化为2
,所以第二个console.log(a);
输出2
。