js常用循环方式的比较

for in  VS  for of

1、for in 取 key; for of 取 value;

2、for of 只能用于数组遍历,for in还可以用于对象属性的遍历;

3、同是便利数组时,由于1属性,for in只能遍历数组元素的索引值,而for of可以遍历出所有数组元素;

4、for in能遍历数组上手动添加的值或者是该数组原型上的值,而for of只能遍历改数组的value;

5、for...of和for...in循环可以与break、continue配合使用,跳出循环,不能使用return,会报错;

6、无论是 for...in 还是 for...of 都不能遍历出 Symbol 类型的值,遍历 Symbol 类型的值需要用 Object.getOwnPropertySymbols() 方法;

forEach VS map VS $.each

1、forEach()返回值是undefined,不可以链式调用;

2、map()返回一个新数组,原数组不会改变;

3、没有办法终止或者跳出forEach()循环,除非抛出异常,使用break报错,使用return会跳出本次循环,继续下一次的循环;

4、$.each()方法规定为每个匹配元素规定运行的函数,return true跳过当过循环return false跳出所有循环;

5、参数只有$.each(key, value),其他均为value,key形式;

6、forEach中回调函数的最后一个参数是当前数组本身,自身的第二个函数是执行回调时,this的指向,默认是this;

7、map()必须要有返回值,否则返回的是包含被map数组长度的undefind值;

猜你喜欢

转载自www.cnblogs.com/xudandan/p/11925062.html