We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Конструкция for each...in заявлена как "deprecated", как часть стандарта ECMA-357 (E4X). Поддержка E4X была удалена. Вместо for each...in рассмотрите использование for...of. (Пожалуйста обратите внимание: баг 791343.)

Firefox теперь предупреждает об использовании for each...in и for each...in удаляется из ночных сборок. Пожалуйста, посмотрите Warning: JavaScript 1.6's for-each-in loops are deprecated для помощи в миграции.

The for each...in statement iterates a specified variable over all values of object's properties. For each distinct property, a specified statement is executed.


for each (variable in object) {
Variable to iterate over property values, optionally declared with the var keyword. This variable is local to the function, not to the loop.
Object for which the properties are iterated.
A statement to execute for each property. To execute multiple statements within the loop, use a block statement ({ ... }) to group those statements.


Some built-in properties are not iterated over. These include all built-in methods of objects, e.g. String's indexOf method. However, all user-defined properties are iterated over.


Using for each...in

Warning: Never use a loop like this on arrays. Only use it on objects. See for...in for more details.

The following snippet iterates over an object's properties, calculating their sum:

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


Not part of a current ECMA-262 specification. Implemented in JavaScript 1.6 and deprecated.

Браузерная совместимость

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support Нет 1.5 (1.8) Нет Нет Нет
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support Нет Нет 1.0 (1.0) Нет Нет Нет

Firefox specific note

  • for each...in удалён только из Nightly Firefox 53

Смотрите также

  • for...in - аналогичный оператор по перебору имён свойств.
  • for...of - аналогичный оператор, перебирающий значения свойств, но может быть использован только для перебираемых (iteratable) типов, so not for generic objects
  • for

Метки документа и участники

Внесли вклад в эту страницу: Bargamut
Обновлялась последний раз: Bargamut,