面试题,如下代码输出什么
var a = 'global' function fn() { console.log(a) if(false){ var a = 'local'; } console.log(a) } fn()
结果是
undefined
undefined
为什么会这样,而不是输出global,因为函数内有var a,即使不执行,也会变量提升。相当于如下代码
var a = 'global' function fn() { var a; console.log(a) if(false){ a = 'local'; } console.log(a) } fn()