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)的原因是第一个函数的语句定义被第二个函数覆盖了。所以两次都是执行最后一个函数逻辑了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值