The for keyword is used in two ways in JavaScript. We've just seen how it is used in the for loop. It is also used in the for/in statement. This statement is a somewhat different kind of loop with the following syntax:
for (variable in object) statement
The variable should be the name of a variable, or should be an element of an array or a property of an object; it should be something suitable as the left-hand side of an assignment expression. object is the name of an object, or an expression that evaluates to an object. As usual, the statement is a primitive statement or statement block that forms the body of the loop.
You can loop through the elements of an array by simply incrementing an index variable each time through a while or for loop. The for/in statement provides a way to loop through the properties of an object. The body of the for/in loop is executed once for each property of object. Before the body of the loop is executed, the name of one of the object's properties is assigned to variable, as a string. Within the body of the loop, you can use this variable to look up the value of the object's property with the [] operator. For example, the following for/in loop prints out the name and value of each property of an object:
for (prop in my_object) { document.write("name: " + prop + "; value: " + my_object[prop], "<br>"); }
The for/in loop does not specify in what order the properties of an object will be assigned to the variable. There is no way to tell in advance, and the behavior may differ between implementations or versions of JavaScript.
The for/in loop does not actually loop through all possible properties of all objects. The rules below specify exactly which properties the statement does list and which it does not in Navigator 3.0. Internet Explorer may use somewhat different rules: