javaScript 常见的循环方式及注意点:
- for , while , do...while
- for...in , for...of
- map , foEach
- filter , some , every
for 、 while 、 do...while
for , while , do...while这三个就不多说了,程序猿入门都必须懂的,如果没有...那先回过头去再看看他们再说后面的吧~
for...in , for...of
for...in
for...in主要用来遍历对象但是也可以用来遍历数组;
但是在遍历数组的时候需要注意一些问题:
- 因为比那里获得的 ' i ' 是字符串类型的,如果你想要通过 ‘ i ’去获得数据可能会出现一些意想不到的问题;
- for...in不仅会遍历数组的元素还会遍历你的自定义属性,如果有的话有可能都遍历到原型链上去了~
- for...in遍历是不会顺序执行的,[1,2,3]有可能遍历顺序会是[2,3,1];
for...of
- 直接看图就可以知道for...of没有了for...in的缺陷,遍历的index都是Number类型的;
- 并且和forEach相比较来说最爽的就是它可以 break , continue , return ...这个平时再好不过了;
for of 不仅可以遍历数组对象,它还可以用到很多的其他集合;
- 伪数组对象,(NodeList,arguments...)
- Map,Set
Set我觉得很强的一个用处就是消除数组重复;
- 字符串!
forEach , map
map
平常开发中都经常拿map来遍历数据,
map会返回一个新的数组,但是它不会改变原数组
;
forEach
也不会改变原数组,返回值undefined,只是把数组的每项执行下代码块中的内容;
filter , some , every
filter
会返回一个新的数组(过滤后的数组),但不会改变原数组;
some
、
every
返回遍历结果,true || false; some遍历时只要结果中有满足的那最终返回的结果就是true;every则是要每项都满足才会返回true,否则返回false;