建站学 - 轻松建站从此开始!

建站学-个人建站指南,网页制作,网站设计,网站制作教程

Javascript变量的作用域(2)

时间:2011-03-02 09:02来源: 作者: 点击:
但如果在JS中 view sourceprint? 01 for(var i=0;i5;i++) { 02 } 03 var obj = {name:Lily}; 04 for(var attr in obj) { 05 } 06 { 07 var j=10; 08 } 09 alert(i);//输出4,没有块状作用域 10 alert(attr); //输出

但如果在JS中
view sourceprint?
01    for(var i=0;i<5;i++) {
02    }
03    var obj = {name:"Lily"};
04    for(var attr in obj) {
05    }
06    {
07      var j=10;
08    }
09    alert(i);//输出4,没有块状作用域
10    alert(attr); //输出name,没有块状作用域
11    alert(j);//输出10,没有块状作用域

这也说明一个问题,避免在全局范围内使用for循环同时声明变量,否则会造成全局命名范围的污染。

当然,JS1.7中提出了let关键字声明变量(见https://developer.mozilla.org/cn/New_in_JavaScript_1.7),只作用于for语句范围。
view sourceprint?
1    for(let i=0;i<5;i++) {
2       //todo
3    }
4    alert(i);//运行时报错,提示i未定义

JS1.7需要这样引用 <script type="application/javascript;version=1.7"/></script>
ps:firefox2+实现了JS1.7 (责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片