javaScript语言的预编译与运行

JS代码执行的过程:

  1.预编译 ---- 事先对js代码做一个预处理

  2.代码运行---开始执行JS代码。

JS编程:

  1.加载DOM的最好在/BODY之前

  2.与DOM渲染无关的放在Head里面

  3.JS文件尽量独立方便压缩 同时文件少,减少请求次数。

  4.变量使用命名空间,减少全局变量

  5.JS操作DOM获取DOM是实时的,通过Length来预先存储,方便遍历。

JS代码解析机制:

  1.编译阶段---预处阶段-----转成字节码

  2.运行阶段---代码执行-----执行本地代码

    变量:var与function都是变量的声明。

    jS是按照快来执行的即使--Script就是对这一个标签类的JS做--(编译,执行)这样的一个过程。

    活动对象----看情况来说,当前命名空间下面。

    a.编译阶段:

      对声明的变量进行所在上下文(活动对象--比如windows)的提升--属于当前环境

      var------------值为undefined -----------------作为当前活动对象的一个属性

      function-------值为函数定义代码    -------------作为当前活动对象的一个属性

      感觉就是对变量初始化设初始值

       引用:JavaScript解释器在执行脚本时,是按块来执行的。通俗地说,就是浏览器在解析HTML文档流时,如果遇到一个<script>标签,则JavaScript解释器会等到这个代                                         码块都加载完后,先对代码块进行预编译,然后再执行。执行完毕后,浏览器会继续解析下面的HTML文档流,同时JavaScript解释器也准备好处理下一个代码块。

             所以:编译阶段快都在一个活动对象之上,变量函数是共享的,出问题主要是应为代码如果在html解析阶段,后续为完成,代码执行可能出问题  所以尽量在onload里面

          编写。

      注意:函数表达式:var say = function(params) {} 类似的形式。

    b.运行阶段:

      运行阶段,代码是顺序执行的。

  总结:

    html = html + JS(script) 

    页面加载后进行解析html文档流 ,建立DOM树  渲染页面

    页面解析是采取的从上到下的顺序,如果遇到JS代码快(script)则编译运行在做后续的解析,代码尽量在onload事件里面执行,这样的话不会出现变量没有定义的错误

 

 引用:http://blog.csdn.net/cxiaokai/article/details/7552653

    http://www.blogjava.net/JAVA-HE/archive/2010/10/09/334021.html

javaScript语言的预编译与运行,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。