javascript作用域练习

Posted 傻了吧爷会飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript作用域练习相关的知识,希望对你有一定的参考价值。

javascript作用域练习

<script>
        /* 练习1 */
        var a=4;
        function test(){
            console.log(a);//4
            a=10;
            console.log(a);//10
        }
        test();
        /* 练习2 */
        function func(){
            console.log(a);//undefined
            var a=1;
        }
        func();
        /* 
        练习2的预解析:
        var a;
        function func(){
            var a;
            console.log(a);
            a=1;
        }
        a=4;
        func();
        */
    </script>
<script>
        /* 练习1 */
        var a=4;
        function test(x){
            console.log(a);//undefined
            if(x){
                var a=68;
            }
            console.log(a);//68
        }
        test(true);
        console.log(a);//4
        /* 
        预解析:
        var a;
        function test(x){
            var a;
            console.log(a);
            if(x){
                a=68;  //if中{}是块级作用域,块级作用域中var定义的变量会提升到块级作用域外面
            }
            console.log(a);
        }
        a=4;
        test(true);
        console.log(a)
        */
    </script>
<script>
        var a=20;
        var b=12;
        function test(a){
            console.log(a);//20
            a=45;
            b=23;
        }
        test(a);
        console.log(a);//20
        console.log(b);//23

        /* 
        预解析:
        var a;
        var b;
        function test(a){//a以函数的参数传入时,a在函数作用域中变成了局部变量
            var a;
            a=20;
            console.log(a);
            a=45;
            b=23;//b还是全局变量
        }
        a=20;
        b=12;
        test(a);
        console.log(a);//20
        console.log(b);//23
        */
    </script>

 

以上是关于javascript作用域练习的主要内容,如果未能解决你的问题,请参考以下文章

javascript作用域练习

JavaScript 作用域 与 作用域链

作用域是什么?

JavaScript词法作用域经典练习题

JS---闭包

JS 作用域及作用域链