javascript中的各种for循环

javascript中的各种for循环


js中可用于数组的for循环有很多种,包括for..in,for...of,forEach和普通的for循环


forEach是Array对象原型链上的一个方法

forEach接受一个函数Callback作为参数,该函数又接收三个参数,第一个参数是当前正在处理的currentValue值,第二个参数是当前正在处理的index索引,第三个参数是该数组的原数组。

1.forEach不会遍历数组的私有属性

2.forEach在开始遍历数组之前就将遍历的范围确定下来,所以在遍历的时候如果增加某个索引,不会影响forEach的结果。但是如果在遍历过程中删除或增加某个index的值,可能会对后续的遍历造成影响。

a.forEach((el,index)=>{ a.unshift('000') console.log(el)}) 这种情况会改变遍历出的值

var words = ["one", "two", "three", "four"]; words.forEach(function (word) { console.log(word); if (word === "two") { words.shift(); } }); // one // two // four}

3.forEach由于是一个函数,所以不支持break和continue语句。但是可以通过trycatch手动抛出异常的方式代替continue语句,虽然不推荐这样做。

4.forEach的功能是对数组中的每一个元素执行一次callback方法

5.forEach方法没有返回值,return语句不会生效.在方法内输出this指向当前作用域的this值

6.如果数组中并没有该索引的值,则该索引不会被循环和输出。


for..in..是一个很常用的数组遍历语句,for..of是ES6中针对iterator的遍历方法

1.for..in是对数组index的值进行遍历,如果要取数组的值,可以使用Array[index]来获取;for..of是对被遍历对象的值进行遍历

2.for..in可以遍历数组的私有属性,所有通过对象操作为Array添加的属性都可以被遍历到;for..of不能获取到对象的私有属性

3.for..in可以遍历数组和对象格式的变量;for..of可以遍历所有iterator对象,比如map和set但不包括object.

4.for..in和for..of都可以通过break和continue跳出循环

5.for..in和for..of都不支持return语句


你可能感兴趣的:(javascript中的各种for循环)