There are two ways to iterate over an array in JS
var array=[' A ']//standard for loop for (Var i=1;i<array.length;i++) { alert (array[i])}//foreach loop for (var i in array) { alert (Array[i])}
In normal cases, the above two ways of traversing an array result in the same way. First of all, the first difference between the two
The standard for loop i is the number type, which represents the subscript of the array, but I in the Foreach loop represents the array key is the string type because everything in JS is an object. Try the alert yourself (typeof i); this difference is a minor problem. Now I add the following code, the above results are different.
Extended JS native arrayarray.prototype.test=function ()}
Try what the above code does. We found that the standard for loop is still a true array loop, but at this point the Foreach loop prints out the test method I just wrote. This is the maximum difference between a for and a foreach traversal array, and if we are using foreach to iterate through an array in the project, let's say that one day you are not careful to extend the JS native array class, or introduce an external JS framework that extends the native array. That's the problem. Two points for this recommendation
- Do not iterate through the array with for in, all uniformly using the standard for loop variable array ( we cannot guarantee that the JS we introduce will use the prototype extension nativearray)
- If you want to extend the native class of JS, do not use prototype.
JS in the array traversal for vs. in (strongly recommended not to use for in traversal array)