美文网首页
作用域和作用域链

作用域和作用域链

作者: A110802 | 来源:发表于2019-06-28 06:45 被阅读0次

    作用域

    全局作用域

    任何没有在方法中的变量都是在全局作用域中,全局作用域中农的变量可以在程序中的任何地方访问

    ```

    var greeting = 'Hello World!';

    function greet() {

        console.log(greeting);

    }

    // 打印'Hello World!'

    greet();

    ```

    局部作用域

    声明在方法中的变量就是局部作用域,这些变量只能在声明的方法内使用,
    ```

    function greet() {

        var greeting = 'Hello World!';

        console.log(greeting);

    }

    // 打印'Hello World!'

    greet();

    // Uncaught ReferenceError: greeting is not defined

    console.log(greeting);

    ```

    作用域链

    当一个变量在js中被使用的时候,js引擎会尝试在当前作用域下寻找这个变量,如果没有找到就会继续再上一层寻找直到找到全局作用域。如果还是没有找到就会返回错误。

    For example:

    ```

    let foo = 'foo';

    function bar() {

        let baz = 'baz';

        //打印 'baz'

        console.log(baz);

        // 打印 'foo'

        console.log(foo);

        number = 42;

        console.log(number);  // 打印42

    }

    bar();

    ```

    相关文章

      网友评论

          本文标题:作用域和作用域链

          本文链接:https://www.haomeiwen.com/subject/oqyjcctx.html