js的预解析

       //1 我们的JS引擎运行JS代码分为两步:预解析 代码执行;

        //(1) 预解析:JS引擎会把JS里面所有的var function 提升到当前作用域的最前面;

        //(2) 代码执行;按照代码书写的顺序从上往下执行;

        //2 预解析分为两种: 变量预解析(变量提升) 函数预解析(函数提升);

        //(1) 变量提升:就是把所有的变量声明提升到当前作用域的最前面 不提升赋值操作;

        //(2) 函数提升:就是把所有的函数声明提升到当前作用域的最前面 不提升调用函数;




 

        //1 结果是几

        //console.log(num); //报错

        //2 结果是几

        var num = 10;

        console.log(num); //10

        //3 结果是几

        console.log(num1);

        var num1 = 10; //undefined

        // //这里就是变量提升--提升变量声明为最前面,不提升赋值 所以是undefined

        //相当于执行以下

        // var num1;

        // console.log(num1);

        // num1 = 10;



 

        //4 结果是几 使用函数表达式声明函数 切记fun是个变量名

        // fun(); //报错

        var fun = function() {

                console.log(222);

            }

            //fun(); //222

        // //上面报错也是因为变量提升 提升变量声明为最前面,不提升赋值

        //相当以下操作

        // var fun;

        // fun();

        // fun = function() {

        //     console.log(222);

        // }





 

        //5 结果是几 使用函数关键字声明函数

        fn(); //111

        function fn() {

            console.log(111);

        }

        //fn(); //111

        //这里不管在前面条用还是后面条用都能运行是因为函数的提升--提升函数声明为最前面,不提升函数调用

        //当在前面调用相当于以下操作

        // function fn() {

        //     console.log(111);

        // }

        // fn();

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值