javascript的执行顺序问题
2008-10-23 14:57
483 查看
Published by canque on January 3, 2008 02:53 pm under [web发展] Tags: javascript
javascript是一种弱类型,松散灵活的解释型语言,但是它的解释过程仍然遵循一定规范。
看看下面这个例子(来自AJAXBBS):
(先不要急着运行,先想想结果。)
PLAIN TEXT
JavaScript:
<script type="text/javascript">
<!--
var a="xx";
function c(){
alert(a);
var a=0;
alert(a);
}
c();
alert(a)
//-->
</script>
很多人都会认为输出的执行结果应该是这样:xx 0 xx。
因为函数内第一个a没有声明,应该默认为全局变量,所以输出xx;第二个a是函数的局部变量,输出0;第三个输出全局a的值xx。
然而实际上,输出结果却是 undefined 0 xx。
为什么不是xx却是undefined?
其实,这里面除了局部变量和全局变量的知识外,更容易被忽视的问题是javascript代码的执行顺序问题。
javascript总是先声明变量,再执行代码。事实上,上面的代码等价于:
PLAIN TEXT
JavaScript:
<script type="text/javascript">
<!--
var a="xx";
function c(){
var a;
alert(a);
a=0;
alert(a);
}
c();
alert(a)
//-->
</script>
因为第一个a没有赋值,所以结果自然是undefined。
看看这段代码或许会更明白:
PLAIN TEXT
JavaScript:
<script type="text/javascript">
<!--
var a="xx";
function c(){
a=12;
alert(a);
var a=0;
alert(a);
}
c();
alert(a)
//-->
</script>
javascript是一种弱类型,松散灵活的解释型语言,但是它的解释过程仍然遵循一定规范。
看看下面这个例子(来自AJAXBBS):
(先不要急着运行,先想想结果。)
PLAIN TEXT
JavaScript:
<script type="text/javascript">
<!--
var a="xx";
function c(){
alert(a);
var a=0;
alert(a);
}
c();
alert(a)
//-->
</script>
很多人都会认为输出的执行结果应该是这样:xx 0 xx。
因为函数内第一个a没有声明,应该默认为全局变量,所以输出xx;第二个a是函数的局部变量,输出0;第三个输出全局a的值xx。
然而实际上,输出结果却是 undefined 0 xx。
为什么不是xx却是undefined?
其实,这里面除了局部变量和全局变量的知识外,更容易被忽视的问题是javascript代码的执行顺序问题。
javascript总是先声明变量,再执行代码。事实上,上面的代码等价于:
PLAIN TEXT
JavaScript:
<script type="text/javascript">
<!--
var a="xx";
function c(){
var a;
alert(a);
a=0;
alert(a);
}
c();
alert(a)
//-->
</script>
因为第一个a没有赋值,所以结果自然是undefined。
看看这段代码或许会更明白:
PLAIN TEXT
JavaScript:
<script type="text/javascript">
<!--
var a="xx";
function c(){
a=12;
alert(a);
var a=0;
alert(a);
}
c();
alert(a)
//-->
</script>
相关文章推荐
- JavaScript代码执行的先后顺序问题
- javascript attachEvent绑定多个事件执行顺序问题
- javascript执行顺序和执行时间的一些相关问题
- JavaScript 程序执行顺序问题总结
- JavaScript程序执行顺序问题总结
- JavaScript 解决异步顺序执行问题
- javascript执行顺序问题
- javascript attachEvent绑定多个事件执行顺序问题
- 动态加载外部.js文件时候,javascript的执行顺序问题
- JavaScript程序执行顺序问题总结
- JavaScript代码执行的先后顺序问题
- JavaScript程序执行顺序问题总结
- 补充《动态加载外部.js文件时候,javascript的执行顺序问题》
- JavaScript程序执行顺序问题总结
- href javascript target onclick 执行顺序 浏览器兼容问题
- JavaScript 程序执行顺序问题总结
- NO.17 【转载】JavaScript程序执行顺序问题总结
- JavaScript程序执行顺序问题总结
- JavaScript执行顺序导致的问题
- JavaScript程序执行顺序问题总结(转)