什么叫词法作用域

简单来说就是编译时候确定的函数作用域

例子

var value = 1;

function bar() {
    var value = 2;
    function foo() {
        console.log(value);
    }
    foo();
}

bar(); //2

上述代码答案是2 因为bar和foo是嵌套的,所以在编译阶段他们的词法作用域已经是嵌套的了

var value = 1;
function foo() {
    console.log(value);
}
function bar() {
    var value = 2;
    foo();
}
bar(); // 1

上述代码是1,因为foo和bar是同一等级,在编译的时候就确定了两者的词法作用域是平等的,不是嵌套的关系。


用户bPcUQ3V
3 声望0 粉丝