JavaScript中的作用域链详解

2021-02-16 11:29发布

3条回答
桃酥超好吃
2021-02-20 17:40

作用域链:是js的一种查找机制,先在自己的作用域内查找,有就用自己的,没有就依次往上一级进行查找

    查找到全局还是没有就报错


    var a = 10;

    function fun(){

        

        function inner() {

            var a = 30;

            console.log(a);    // 30

        }

        console.log(a); // 10

    }

例如这个例子,inner函数内部打印a,在inner内部定义的有a,就会使用自己作用域下的a,不再向外进行查找。

在函数fun执行时,打印a,在fun函数中并没有变量a的定义,(注意这里inner函数内会形成局部作用域,fun函数不能进入访问),就会依次向上一级进行查询,在window下(也就是全局)有变量a,就是查找成功,返回正确结果。若是全局下还找不到该变量就会报错

一周热门 更多>