0
点赞
收藏
分享

微信扫一扫

JavaScript预解析练习题

追风骚年 2022-01-05 阅读 52

1.第一题

来自雪狐老师的习题,我是搬运,老师别打我鸭

变量提升---当网页一打开,浏览器会先读一遍代码,浏览器会把带var和带function提前声明

            1.如果是带var 浏览器会提前声明  var age 只声明 不赋值  默认的结果是undefined

            2.变量提升 ,只提升等号左面的,不会提升等号右面的

            3.如果是function 会声明+ 定义 会把整个function函数提升到代码前面

 <script>  
        f();//3

        function f() {
            console.log("1");
        }
        f();//3

        function f() {
            console.log("2");
        }
        f();//3

        function f() {
            console.log("3");
       }
</script>

2.第二题

    <script>
         console.log(a); // undefined
         var a = 123;
         console.log(a); // 123
         function f1() {
             console.log(a); // undefined 
             var a = 456;
             console.log(a); //456
         }
         f1();
         console.log(a); //123
    </script>

3.第三题

    <script>
        console.log(a); // undefined
        var a = 123;
        console.log(a); // 123
        var a = 456;
        console.log(a); // 456
    </script>

4.第四题

    <script>
        console.log(a); // 函数体
        var a = 123;
        console.log(a); // 123

        function a() {}
        console.log(a); // 123

        function a() {}
        console.log(a); // 123
    </script>

5.第五题

    <script>
        console.log(a); //undefined 
          var a = 12;

        function fn() {
            console.log(a); // undefined
            var a = 13;
        }
        fn();
        console.log(a); // 12 找我们全局的
    </script>

6.第六题

    <script>
        console.log(a); // undefined
        var a = 12;

        function fn() {
            console.log(a); // 12
            a = 13;//
        }
        fn();
        console.log(a) //13 
    </script>

7.第七题

    <script>
        var foo = 1;

        function bar() {
            // 不管条件成立还是不成立都要进行变量提升
            if (!foo) {
                var foo = 10;
            }
            console.log(foo);
        }
        bar(); //10
    </script>

8.第八题

    <script>
       var n = 13;

        function fn(n) {//n 是形参
            alert(n); // 13
            var n = 14;
            alert(n); //14
        }
        fn(n);//n是实参
        console.log(n); //  13
    </script>

9.第九题

    <script>
        console.log(a, b, c); // undefined undefined undefined
        var a = 10,b = 20,c = 30;
        function f(a) {//小心啊,仔细看,用到我们前面学习的内容
            console.log(a, b, c); //10 undefined 30
            var b = a = c = 100;
            console.log(a, b, c); //100 100 100 
        }
        f(10, 20);
        console.log(a, b, c); // 10 20 100
    </script>

10.第十题

    <script>
        console.log(num, str); // undefind undefind
        var num = 18;
        var str = "lily";

        function fn2() {
            console.log(str, num); //lily undefind
            num = 19;
            str = "candy";
            var num = 14;
            console.log(str, num); // candy 14
        }
        fn2();
        console.log(str, num); // candy 18

    </script>

 

举报

相关推荐

0 条评论