【JS错题总结】作用域链问题

发布时间 2023-06-14 20:50:36作者: zjy4fun

作用域链

上面代码的输出是 GoodbyeJack ,因为执行到语句 typeof name === 'undefined'  的时候,函数会从内向外(作用域链)寻找该变量,从 语句 var  name; 找到该变量的定义,该变量此时的值为 undefined。自执行函数解析和执行一起完成,自己有的不会再向上查找。

var name ='zhangsan';

(function f() {
    var name
    console.log(name) // undefined
    console.log(typeof name) // 'undefined'
})()