Please enable Javascript to view the contents

从头学习js-2-作用域

 ·  ☕ 1 分钟

这个系列是我读冴羽老师博客的感悟,
加入了个人的解读和练习题的解答

作用域是程序如何储存和获取变量的约定

javascript采用了词法作用域(即静态作用域)

静态作用域在函数创建的时候就记下了,会在函数代码的书写位置层级向上查找变量
动态作用域在函数调用的时候才决定,会在函数调用栈中依次向上查找变量

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
var value = 1;

function foo() {
    console.log(value);
}

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

bar();

以上代码在静态作用域情况下会打印1
在动态作用域情况下会打印2

分享

Llane00
作者
Llane00
Web Developer