美文网首页
js 编译顺序

js 编译顺序

作者: sunflower_07 | 来源:发表于2018-03-01 15:02 被阅读0次

一、js 编译
1. js 是按照代码块进行编译和执行,代码块之间相互独立。

2. 声明函数与赋值函数   (js 中的函数定义分为:声明式函数和赋值函数)
    <script
             type="text/javascript">

                function
                    Fn(){ //声明式函数

                    }

                var
                Fn = function{  //赋值式函数

         
                }

    </script>
     注:
     声明式函数与赋值式函数的区别在于:
                在JS的预编译期,声明式函数将会先被提取出来,然后才按顺序执行js代码。

3. 预编译与执行期
    js解析过程分为两个阶段:预编译期(预处理)和执行期
    a) 预编译期 ,js 会把js 中的变量和函数进行处理,此时的处理函数只是声明式函数,变量也只是声明,但不会赋值。
        注:js 引擎是按照代码块的顺序执行,也可以说,预处理和执行也是按照代码块顺序执行,
            预处理只是执行到的代码块的声明函数和变量,而对,未加载的代码块,是没办法进行预处理的

            总结:
            step 1. 读入第一个代码块。

            step 2. 做语法分析,有错则报语法错误(比如括号不匹配等),并跳转到step5。

            step 3. 对var变量和function定义做“预编译处理”(永远不会报错的,因为只解析正确的声明)。

            step 4. 执行代码段,有错则报错(比如变量未定义)。

            step 5. 如果还有下一个代码段,则读入下一个代码段,重复step2。

            step6. 结束。

相关文章

  • js 编译顺序

    一、js 编译1. js 是按照代码块进行编译和执行,代码块之间相互独立。

  • JS 预编译执行顺序

    1.WeakMap的键名只支持对象,map的键名可以是任意值。 2. Map可以遍历,WeakMap不可以 3. ...

  • JS执行顺序-函数声明提升、匿名函数、函数表达式

    大方向上: JS 是按照 代码块 进行 编译、执行 的。 JS执行顺序:原文地址 一.