js预解析

Posted danxibao_chen

tags:

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

我们的引擎运行js分为两步:预解析 代码执行

1.预解析:把js里面所有的var和function提升到当前作用域的最前面

  1)变量提升:把所有的变量声明提升到当前作用域最前面 不提升赋值操作
  2)函数提升:把所有的函数声明提升到当前作用域的最前面 不调用函数

2.代码执行:按照代码书写顺序从上往下执行

案例

        f1();
        console.log(c);
        console.log(b);
        console.log(a);
        function f1() {
            var a=b=c=9;//var a=9;b=9;c=9;
            console.log(a);
            console.log(b);
            console.log(c);
        }
        //上述代码相当于以下代码
        // function f1() {
        //     var a
        //     a=b=c=9;
        //     console.log(a);//9
        //     console.log(b);//9
        //     console.log(c);//9
        // }
        // f1();
        // console.log(c);//9
        // console.log(b);//9
        // console.log(a);//a is not defined

以上是关于js预解析的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript预解析

js_ 预解析(js代码如何执行的)

JS解析+预解析相关总结

1JS预解析原理

JS代码预解析原理函数相关面向对象

关于js----------------分享前端开发常用代码片段