读书人

JS没quot;块作用域quot

发布时间: 2012-11-04 10:42:42 作者: rapoo

JS没有"块作用域"
没别的意思,只是记下来而已,这在犀牛书上是明明白白地写着的。

<script>for(var i = 0; i < 10; i++){    var a = i;}alert(a);//alert 9,而不是undefined,或报错,a被注册到全局变量里去了</script>

稍微加深一下
<script>try{  alert(abcde);}catch(e){  alert(e);}//报错try{  alert(a);}catch(e){  alert(e);}//alert undefined,而不是报错,原因同上for(var i = 0; i < 10; i++){    var a = i;}</script>

再来1个
<script>var s=2;function test(){   alert(s);//undefined   var s=1;   alert(a);//undefined   if(s===3){      var a=2;   }   alert(a);//undefined}test();alert(s)//2,从全局变量中寻找s</script>

上例中的test()相当于
function test(){  var s;  var a;  alert(s);  s=1;  alert(a);  if(s===3){    a=2;  }  alert(a);}

读书人网 >JavaScript

热点推荐