`
water84222
  • 浏览: 369574 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

js解析顺序

 
阅读更多
浅析js解析顺序收藏

==========================================先看第一部分比较======================================



   1. <SCRIPT LANGUAGE="JavaScript">
   2. <!--
   3.     /***************************
   4.      *
   5.      *      JS的解释顺序
   6.      *
   7.      ***************************/
   8.
   9.
  10.      //首先看第一段代码
  11.
  12.      var myfunc = function(){
  13.         alert("hello");
  14.      };
  15.
  16.      myfunc();// 第一次调用myfunc,输出hello
  17.
  18.      myfunc = function(){   
  19.         alert("yeah");
  20.      };
  21.      myfunc();// 第二次调用myfunc,输出yeah
  22. //-->
  23. </SCRIPT>



==========================================再看第二部分比较======================================

   1. <SCRIPT LANGUAGE="JavaScript">
   2. <!--
   3.     /***************************
   4.      *
   5.      *      JS的解释顺序
   6.      *
   7.      ***************************/
   8.
   9.
  10.      //首先看第一段代码
  11.
  12.      function myfun(){
  13.         alert("hello");
  14.      };
  15.
  16.      myfun(); // 竟然输出yeah
  17.
  18.      function myfun(){
  19.         alert("yeah");
  20.      };
  21.
  22.      myfun(); // yeah
  23. //-->
  24. </SCRIPT>



==========================================再看第三部分比较======================================

   1. <script>
   2.      //首先看第一段代码
   3.
   4.      function myfun(){
   5.         alert("hello");
   6.      };
   7.
   8.      myfun(); // hello
   9. </script>
  10.
  11. <script>
  12.
  13.      function myfun(){
  14.         alert("yeah");
  15.      };
  16.
  17.      myfun(); // yeah
  18.
  19. </script>



通过这3部分区别的比较可以得出结论:



       原来JS引擎并非一行行去分析和执行程序,而是一段一段的执行(如3),而且在同一段程序的分析执行中,定义式的函数语句会被优先执行。函数定义执行完以后才会按顺序执行其他语句代码,所以(如2)的原因是第一个函数的语句定义被第二个函数覆盖了。所以两次都是执行最后一个函数逻辑了。
分享到:
评论

相关推荐

    第六章:js解析顺序和作用域1

    第13节:js解析顺序和作用域javascript解析顺序(定义)先解析var、function、参数;该步骤的var只定义变量,后面的 = 赋值不解析该步骤的

    浅谈js的解析顺序 作用域 严格模式

    一、javascript的解析顺序 我们大家所理解的代码的执行顺序都是从上到下的,但是实际上确不是这样的。我们看一下下面的代码。 alert&#40;a&#41;; var a = 1; 如果执行顺序是从上到下的,在上面弹出一个a,浏览器会...

    fparse:JavaScript公式解析器

    JavaScript公式解析器 fparser提供了一个Formula类,该类将包含数学公式(例如x*sin(PI*x/2) )的字符串解析为可评估的对象。 然后,可以为所有未知变量/函数提供值,并从公式中计算出数值。 有关示例应用程序,请...

    JS多个异步请求 按顺序执行next实现解析

    在js里面,偶尔会遇见需要多个异步按照顺序执行请求,又不想多层嵌套,,这里和promise.all的区别在于,promise或者Jquery里面的$.when 是同时发送多个请求,一起返回,发出去的顺序是一起;这里是按照顺序发请求 ...

    JavaScript 全面解析各种浏览器网页中的JS 执行顺序

    近来我通过一些测试以全面的解析网页在各种浏览器中的JavaScript代码的执行顺序,在这儿做个记录。

    javascript按顺序加载运行js方法

    浏览器会异步加载 javascript 文件,但是会按照引用文件中的书写顺序从上到下执行解析 javascript Defer属性标记 defer是html4.0中定义的,该属性使得浏览器能延迟脚本的执行,等文档完成解析完成后会按照他们在文档...

    高性能的javascript之加载顺序与执行原理篇

    javascript在浏览器中的性能,可以认为是开发者所面临的最严重的可用性问题,今天,自己看完高性能的javascript的加载和执行这一章,聊聊怎么解决js的加载顺序和执行的原理,下面话不多说了,来一起看看详细的介绍:...

    javascript的解析执行顺序在各个浏览器中的不同

    javascript是一种解释型语言,它的执行是自上而下的。由于各个浏览器对它的理解有所差异,所以我们有必要深入理解js的执行顺序

    js解析器

    JS解析器 浏览器中有一套专门解析JS代码的程序,这个程序称为js的解析器。 浏览器运行整个页面文档时,遇到 JS解析器的工作步骤: 1. 预解析代码 主要找一些关键字如var、function、参数等,并存储进仓库里面(内存)...

    js 程序执行与顺序实现详解

    JavaScript是一种描述型脚本语言,由浏览器进行动态的解析与执行,浏览器对于不同的方式有不同的解析顺序,详细介绍如下,感兴趣的朋友可以参考下哈

    Java HTML解析类

    纯Java写的html解析类,解析为自上而下顺序解析。解析效率一般,不支持js,可以满足日常使用。

    实例分析浏览器中“JavaScript解析器”的工作原理

    JavaScript解析器工作步骤: 1、“找一些东西”: var、 function、 参数;(也被称之为预解析) 备注:如果遇到重名分为以下两种情况: 遇到变量和函数重名了,只留下函数 遇到函数重名了,根据代码的上下文顺序,...

    PDF解析SDK

    12.可直接解析指定页的PDF数据,与页面顺序无关。 13.支持日文的处理。 14.支持超级链接的提取。 15.支持直接将PDF文档变为HTM文档。 联系方式: 主页:http://www.pdfimage.com E-mail: pdfimage@pdfimage...

    JavaScript执行顺序详细介绍

    之前从JavaScript引擎的解析机制来探索JavaScript的工作原理,下面我们以更形象的示例来说明JavaScript代码在页面中的执行顺序。如果说,JavaScript引擎的工作机制比较深奥是因为它属于底层行为,那么JavaScript代码...

    浅谈JavaScript 的执行顺序

    虽然现代浏览器可以并行的下载JavaScript(部分浏览器),但考虑到JavaScript的依赖关系,他们的执行依然是按照引入顺序进行的。 本文章记录本人在学习 JavaScript 中看书理解到的一些东西,加深记忆和并且整理记录...

Global site tag (gtag.js) - Google Analytics