This is an archived page. It's not actively maintained.

טענת "for" הוצאה משימוש בסטנדרט (ECMA-357 (E4X. התמיכה ב-E4X אמנם הוסרה, אך טענת ה"for" לא תבוטל ולא תוסר מטעמי תאימות לגרסאות קודמות. עם זאת, מומלץ להשתמש בטענת "for...of" במקום. (ע"ע bug 791343 ). 

טענה מסוג:


("עבור כל... ב...")

חגה סביב  כל הערכים של כל "פריטי הרכוש" (properties) של משתנה נתון. עבור כל אחד מפריטי הרכוש תבוצע טענה מוגדרת.


for each (variable in object) {
המשתנה שיחוג סביב הערכים של פרטי הרכוש. ניתן (אך לא חובה)  להצהיר על משתנה זה עם מילת המפתח var. המשתנה הזה הוא פנימי לפונקציה, ולא ללולאה עצמה.
האובייקט שסביב פריטי הרכוש שלו יש לחוג. 
טענה שיש לבצע עבור כל אחד מפריטי הרכוש. על מנת לבצע יותר מטענה אחת בתוך הלולאה, יש להשתמש בטענת בלוק ({ ... }) כדי לקבץ את הטענות הללו יחדיו.



Some built-in properties are not iterated over. These include all built-in methods of objects, e.g. String's indexf

method. However, all user-defined properties are iterated over.


Using for

Warning: Never use a loop like this on arrays. Only use it on objects. See 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.

Browser compatibility

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 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

See also

  • - a similar statement that iterates over the property names.
  • for...of - a similar statement that iterates over the property values but can only be used for iteratable types, so not for generic objects
  • for