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><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>function test(){ var s; var a; alert(s); s=1; alert(a); if(s===3){ a=2; } alert(a);}