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预解析

上一篇:为什么写JSX的时候要引入react


下一篇:CSSMotion VS animation in Angular