JS in the array traversal for vs. in (strongly recommended not to use for in traversal array)

Source: Internet
Author: User

There are two ways to iterate over an array in JS

123456789 var array=[‘a‘]//标准的for循环for(var i=1;i<array.length;i++){    alert(array[i])}//foreach循环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.

1234 //扩展了js原生的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

  1. 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)
  2. 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)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.