JS:作用域

作用域:
标识符(变量和函数名) 在函数的代码块内部外部能够被访问   那么就是这个标识符的作用域

 

注意:

1、作用域将环境分为内部和外部,全局变量是在函数作用域外部和内部都能访问到的,但局部变量在函数内部,只能在函数内部被访问到

 

看例子:

        function fn() {
            var a = 20;

            function fm() {

            }
            fm();
            console.log(a);

        }
        fn();
        console.log(a);

打印结果:

20

报错

 

理解:

在fn函数内部的a是fn的局部变量,不能在函数外部被访问。

 

例2:

        function fn(a) {
        //第二步var a=200
        function fm(a) {
            //第四步var a=200
            console.log(a, 122);     //200
                        //第五步var a = 90
            a = 90;
            console.log(a, 123);     //90
        }
        fm(a);     //第三步fm(200)
        console.log(a, 124);     //第六步200
    }
    var a = 200;
    fn(a);     //第一步fn(200)
    console.log(a, 125);     //第七步200

 

例3:

    var a = 10;

    function fn() {
        console.log(a,2); //undefined
        a = 40;
        var a = 20;
        console.log(a,3); //20
    }
    console.log(a,1); //10
    fn();
    console.log(a,4); //10

打印结果:

10 1
undefined 2
20 3
10 4

 

理解:

当window环境中有变量a时,1,4都会打印10;

调用fn时没有传参,因此2是找不到变量a的;

在fn中声明了一个局部变量a,因此3打印的是fn中a的值。

 

posted on 2022-06-20 19:42  香香鲲  阅读(22)  评论(0编辑  收藏  举报