标签:style blog color java io ar cti div
先来看一段代码:
<script type="text/javascript"> var x=1; if(x===1){ var b=function a(){ alert(1) } }else{ var b=function a(){ alert(2) } }; b(); </script>
由于函数b是表达式,不会在代码执行之前被提升,所以结果是1。
假如将代码稍作改动:
<script type="text/javascript"> var x=1; if(x==1){ function a(){ alert(1) } }else{ function a(){ alert(2) } }; a(); </script>
那结果是什么?
大部分浏览器(IE/chrome/欧朋/safari)都弹出2,唯独FF弹出1,事实上,上面的代码在ECMAScript中属于无效语法,javascript引擎会尝试修正错误,但FF的做法与其它浏览器不一致,所以不推荐这种写法,改成函数表达式即可。
标签:style blog color java io ar cti div
原文地址:http://www.cnblogs.com/wangmeijian/p/3923143.html