慎用 JS 中的 for (var index in items) 循环数组项
2017-11-21 12:23
706 查看
JavaScript 循环数组的项,我们一般人用 for (var i = 0; i < items.length; i++),也有人用 for (var index in items)。
我们要慎用 for (var index in items),为什么呢?
首先这个与 C# 中的 foreach 不一样,foreach 中的 index 表示的是项,而这里 index 是表示项索引,也就是 0、1、2、3……
这还不是致命的,看下面的示例:
Array.prototype.copy = function ()
{ };
var arr = [1, 2];
for (var index in arr)
{
alert(index);
}
我们看到会弹出三个对话框,分别是:0、1、copy,也就是说除了项的数值索引 0、1,还多了一个 copy,而这个 copy 就是因为 Array.prototype.copy 扩展得到的。
所以说不要把 for (var index in items) 当作是 for (var i = 0; i < items.length; i++) 的一种简写,二者具有不同的意义。
http://www.cftea.com/c/2014/08/6290.asp
我们要慎用 for (var index in items),为什么呢?
首先这个与 C# 中的 foreach 不一样,foreach 中的 index 表示的是项,而这里 index 是表示项索引,也就是 0、1、2、3……
这还不是致命的,看下面的示例:
Array.prototype.copy = function ()
{ };
var arr = [1, 2];
for (var index in arr)
{
alert(index);
}
我们看到会弹出三个对话框,分别是:0、1、copy,也就是说除了项的数值索引 0、1,还多了一个 copy,而这个 copy 就是因为 Array.prototype.copy 扩展得到的。
所以说不要把 for (var index in items) 当作是 for (var i = 0; i < items.length; i++) 的一种简写,二者具有不同的意义。
http://www.cftea.com/c/2014/08/6290.asp
相关文章推荐
- 关于for (var index in items)和for (var i = 0; i < items.length; i++)
- JavaScript 中 for (var i in data) 循环数组项
- js中的循环遍历数组中的元素,ES6(for-of)、ES5(forEach、for-in)、通用(for(i=0;i<length;i++))
- 转→js数组遍历 千万不要使用for...in...
- JS数组的遍历方式for循环与for...in
- JS数组的遍历方式for循环与for...in
- js 数组的for循环到底应该怎么写?
- [Effective JavaScript 笔记]第49条:数组迭代要优先使用for循环而不是for...in循环
- for循环与for...in循环JS
- js中 for - in 循环
- phpcms抛出的二维数组转移到js,js中for....in遍历数组,用“.”连接来读出一维数组值
- JavaScript 利用for-in循环数组或对象
- Effective JavaScript Item 49 对于数组遍历,优先使用for循环,而不是for..in循环
- js中for定时输出循环输出某一数组
- JsRender for index 循环索引使用说明
- JS数组的遍历方式for循环与for...in
- 数组迭代要优先使用for循环而不是for...in循环
- js for in循环获取对象属性名,属性值
- js 、json 、数组遍历(for in)
- js中的for-of循环遍历数组