首页 > 技术文章 > JS词法作用域

Jingge 2019-01-02 15:49 原文

作用域 是一种规则,这套规则用来管理引擎如何进行标识符名称进行变量的查找。

作用域分两种:词法作用域、动态作用域:

词法作用域
词法作用域,JS就是采用这种作用域。词法作用域由你在写代码时将变量和作用域块写在哪里决定。

例如:变量a在全局作用域中,输出2;

function foo() {
    console.log( a ); // 2
}

function bar() {
    var a = 3;
    foo();
}

var a = 2;
bar();

动态作用域 不是在写代码是静态确定的,而是在运行时动态确定。例如,动态作用域 会输出3

function foo() {
    console.log( a ); // 2
}

function bar() {
    var a = 3;
    foo();
}

var a = 2;
bar();

推荐阅读