首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

for each...in

作为ECMA-357(E4X)标准的一部分,for each...in语句已被废弃,E4X中的大部分特性已被删除,但考虑到向后兼容,for each...in只会被禁用而不会被删除,可以使用ES6中新的for...of语句来代替.(bug?791343.)

Firefox现在警告for each...in的使用, 且它不再在Firefox 中工作。

请参阅 警告: 对于迁移帮助,不推荐使用JavaScript 1.6的for-each-in循环。

使用一个变量迭代一个对象的所有属性值,对于每一个属性值,有一个指定的语句块被执行.

语法

代码语言:javascript
复制
for each (variable in object) {
  statement
}

variable用来遍历属性值的变量,前面的var关键字是可选的.该变量是函数的局部变量而不是语句块的局部变量.object该对象的属性值会被遍历.statement遍历属性值时执行的语句. 如果想要执行多条语句, 请用({ ... }) 将多条语句括住.

描述

一些对象的内置属性是无法被遍历到的,包括所有的内置方法,例如String对象的indexOf方法.不过,大部分的用户自定义属性都是可遍历的.

示例

使用for each...in

警告:永远不要使用for each...in语句遍历数组,仅用来遍历常规对象,这里讲解了为什么这么说.

下面的代码片段演示如何遍历一个对象的属性值, 并计算它们的和:

代码语言:javascript
复制
var sum = 0;
var obj = {prop1: 5, prop2: 13, prop3: 8};

for each (var item in obj) {
  sum += item;
}

console.log(sum); // logs "26", which is 5+13+8

规范

不是当前ECMA-262规范的一部分。在JavaScript 1.6中实现,不建议使用。

浏览器兼容性

Feature

Chrome

Firefox (Gecko)

Internet Explorer

Opera

Safari

Basic support

No support

1.5 (1.8)

No support

No support

No support

Feature

Android

Chrome for Android

Firefox Mobile (Gecko)

IE Mobile

Opera Mobile

Safari Mobile

Basic support

No support

No support

1.0 (1.0)

No support

No support

No support

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com