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你不知道的JavaScript 笔记—— 作用域与闭包 - 编译原理 - LHS - RHS - 循环与闭包 - 模块 - 词法作用域 - 动态作用域

JavaScript函数进阶回调函数递归函数闭包函数

5-14 练习题及答案