慎用 for (var index in items)
所属分类: JS 2024-04-13 11:50:43 编辑:zfxfun 浏览次数 923 次
JavaScript 循环数组的项,我们一般人用 for (var i = 0; i < items.length; i++),也有人用 for (var index in items)。
我们要慎用 for (var index in items),为什么呢?
如果我们对array进行扩展了,如增加了几个方法,比如删除方法或者copy方法,
Array. prototype.copy = function () { };
var arr = [1, 2];
for ( var index in arr)
{
alert( index);
}
使用 for (var index in items) 的时候就会把上面的几个方法也遍历一遍,会导致意想不到的错误,而且不易发现!
我们看到会弹出三个对话框,分别是:0、1、copy,也就是说除了项的数值索引 0、1,还多了一个 copy,而这个 copy 就是因为 Array.prototype.copy 扩展得到的。
所以说不要把 for (var index in items) 当作是 for (var i = 0; i < items.length; i++) 的一种简写,二者具有不同的意义。
可以使用jq的each代替,或者使用这个for (var i = 0; i < items.length; i++)代替,或者过滤掉都可以
(i p.params) { (i){ ; } paramLen; strParams (i p.params[i] ); }
猜你喜欢
- JavaScript和Jquery的dom操作对比 2018-07-11
- js实现跳转和刷新功能 2018-07-16
- 前端实现分页 2018-07-21
- Js获取当前日期时间及其它操作 2018-08-12
- js为数据加载 2018-08-12
- 正则表达式常用的验证 2018-08-13