Javascript基础——关于JavaScript代码的执行顺序
2010-08-06 13:02
246 查看
1.4. 关于JavaScript的执行顺序
JavaScript执行引擎并非一行一行地分析和执行程序,而是一段一段地分析执行的。而且在分析执行同一段代码中,定义式的函数语句会被提取出来优先执行。函数定义执行完后,才会按顺序执行其他代码。先看看两个例子:
例子1:
var hello = function(){
alert('hello,zhangsan');
}
hello();//第一次调用,输出“hello,zhangsan”
var hello = function(){
alert('hello,lisi');
}
hello();//第二次调用,输出“hello,lisi”
例子2:
function hello(){
alert(‘hello,zhangsan’);
}
hello();//第一次调用,猜猜输出什么内容?
function hello(){
alert(‘hello,lisi’);
}
hello();//第二次调用,猜猜输出什么内容?
在例子2中,两次调用都会输出相同的内容“hello,lisi”。同样是声明两个相同名称的函数,为什么调用的结果却不一样呢?
这就是JavaScript执行顺序导致的。JavaScript执行引擎并非一行一行地分析和执行程序,而是一段一段地分析执行的。而且在分析执行同一段代码中,定义式的函数语句会被提取出来优先执行。函数定义执行完后,才会按顺序执行其他代码。也就是说,在第一次调用hello函数之前,第一个函数语句定义的代码已经被第二个函数定义语句的代码覆盖了,这就是为什么在例子2中第一次调用hallo时,也会输出后面定义的函数内容的原因了。
下面我们再给一个例子证明JavaScript执行引擎是一段一段地分析执行的。我们将实例2中的代码分成两段。将他们放到同一个html中,但是用不同的标签隔开。
例子3:
function hello(){
alert('hello,zhangsan');
}
hello();//第一次调用,输出“hello,zhangsan”
function hello(){
alert('hello,lisi');
}
hello();//第二次调用,输出“hello,lisi”
这时,两次调用的输出才是按照各自的顺序进行的。
相关文章推荐
- java SE基础(关于初始化代码执行顺序与变长参数的方法)
- 探析浏览器执行JavaScript脚本加载与代码执行顺序
- JavaScript中关于事件绑定、冒泡、捕获和执行顺序
- 关于javascript的执行顺序简单测试
- javascript代码执行顺序易错点
- 关于JavaScript预编译和执行顺序以及函数引用类型的思考
- JavaScript代码执行的先后顺序问题
- js,javascript代码执行顺序理解
- 关于代码执行的先后顺序
- 关于DataBind和页面代码执行顺序
- Javascript代码在页面加载时的执行顺序介绍
- 验证了javascript代码在页面中的执行顺序
- javascript代码的执行顺序
- 探析浏览器执行JavaScript脚本加载与代码执行顺序
- 浏览器环境下JavaScript脚本加载与执行探析之代码执行顺序
- JavaScript脚本代码的位置及在页面中的执行顺序
- 关于JavaScript的执行顺序,如果多个js中(a.js,b.js,c.js)都有一个方法(如test方法),那么如果再html中触发执行该test方法,是执行的那个js中的test方法(a.)?
- 执行代码[WebKit] JavaScriptCore解析--基础篇(二)解释器基础与JSC核心组件
- Java基础-代码执行顺序(重要)
- 关于在jsp中java代码和js以及html代码的执行顺序