面试题答案
一键面试- 输出结果:
undefined
1
- 原因解释:
- 在JavaScript中,变量存在提升机制。当函数
test
执行时,变量a
的声明会被提升到函数作用域的顶部,但初始化(赋值a = 1
)仍然在原来的位置。 - 所以当执行
console.log(a)
时,a
已经声明但还未初始化,此时a
的值为undefined
。 - 接着执行
var a = 1;
,对a
进行了赋值。 - 然后再次执行
console.log(a)
,此时a
的值为1
,所以输出1
。
- 在JavaScript中,变量存在提升机制。当函数