zoukankan      html  css  js  c++  java
  • 关于js预编译以及js文件执行顺序的几个问题。

                关于js的执行原理,除去html页面中直接添加的代码,js代码的放置可以分为两类。

               //情形a
               <script type="text/javascript" src="xxx.js"$amp;>amp;$lt;/script>
               //情形b 
               <script type="text/javascript">
               code......
              </script>

          (1)a中的js代码和b中js的代码都是代码段,引入一个js文件就是引入一个代码段。一个script闭标签里面夹的一个也是一个代码段。当页面载入时,这些代码段都是按照自上而下的顺序执行的,也就是说,执行完上一个代码段

                 才会去执行下一个代码段。

          (2)每个代码段执行的顺序是相同的,

                检查语法--》预编译--》最后执行

          一个函数重名问题,同一页文件中和独立js文件中的区别

      //代码段1开始
      function a(){
      alert(1);
      }
      var f1=a;//保存a
      //代码段1结束
      //代码段2开始
      function a(){
      alert(2);
      }
      var f2=a;//保存a

    f2();

      //代码段2结束

      window.onload=function(){
      f1();

      如果把这两个函数写在同一个js文件里面, 后面的会覆盖前面的一个。但是如果分别写在两个js文件里面。不会覆盖.。第一段代码在当前的环境中找到了function a(){alert(1);}所以就把这个函数保存在f1中,第二段代码时全局

     之前的函数a被覆盖。是新的a函数。但是由于之前的f1已经保存的是原来的函数,所以f1无法改变。假设,这个时候在后面再添加一个js文件,引用a函数,输出结果还是2。

           如果所有的代码放在一块,在预解析阶段,后面的函数会把前面的给覆盖。  

  • 相关阅读:
    Windows下git使用代理服务器的设置方法
    SQL backup&restore
    css3 随记
    HTML5 上传图片预览
    jQuery.event.move
    css3 html5 手机设备 列表的弹回和加速移动
    16进制与utf-8
    android 使用现成做get请求
    android 往sd卡中写入文件
    android 遍历控件
  • 原文地址:https://www.cnblogs.com/qianxinxu/p/5495370.html
Copyright © 2011-2022 走看看