易截截图软件、单文件、免安装、纯绿色、仅160KB

关于JavaScript的小问题

JScript code:


var a="aa";

function ff(){

a="c";
if(false)
{
var a;

}

}
ff();
alert(a);








为什么以上效果测试出来的是if语句块执行后的效果,if(false)应该不会执行到后面的语句啊?
这点很是不明白 望大家赐教一下 谢谢

由于声明的var a,编译的时候已经把函数内的a当成局部变量了

应该是编译顺序问题,用预编译如下, 就得到c了
JScript code:

var a="aa";

function ff(){
a="c";
@if(false)
{
var a;
}
@end
}
ff();
alert(a);



引用
http://topic.csdn.net/u/20090913/11/da9afa35-768c-4f12-8157-80295b5fc2c0.html?98991

不论var 在哪,都会被提升到语句最前,,,,



精辟!对你的敬仰如滔滔江水连绵不绝~

楼主只要记住JS中除了var声明的变量外还有function声明的函数都会在执行脚本前先进行预编译。
如:
      <script type="text/javascript">
    f();//结果是undefined
    function f(){
  alert(a);      
  var a;//预编译时var变量初始值为undef


相关问答:

求一个用正则表达式实现简单验证的JavaScript代码

如有一个textbox,用户输入后点button按钮时,实现用JavaScript对textbox输入信息的验证,要求用JavaScript来实现,比如验证用户输入的是否是数字。
希望将HTML代码一并写出来哈,谢谢
HTML code:

<!DOC ......

新人javascript问题求助,请各位大哥大姐们来帮忙!

这是我的文本框
<input type="text" size="60" name="password_answer" id="pwdanswer" value="$!password_answer" >
提交按钮
<input clas ......

使用javascript中的dom来写代码,会的请进,急

HTML code:

<input type="button" value="11" onclick="test()" />
<tr>
<td >123</td>
<td>33</td>
</tr> ......

一个简单的javascript问题

function(data){
var idd=data.id;
var addchildbutton=document.createElement(" <input type='button' onclick='addchild("+idd+")'>");
addchildbutto ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号