- 普通循环 for 循环,自行指定循环次数
for(i = 0; i < loopTimes; i++) { console.log(i) }
- for...in 循环
用于遍历对象的属性(数组的索引值也算属性), 但有一个缺点,如果手动向数组添加成员属性,则:虽然数组的length 不变,但用 for....in 遍历数组会遍历到那些新定义的属性
for (property in obj) { console.log(property,obj[property]); }
- for....of循环(ES6)
for...of 循环修复了for...in存在的问题,他只遍历属于对象本身的属性值。且这个对象必须是 iterable 可被迭代的。如Array、Map、Set。
for (element of iterable) { console.log(element); }
- forEach(callbackFn , ?thisArg)方法(ES5.1)
iterable 可被迭代的对象都是有 forEach(callbackEn,?thisArg),而Array,Map,Set 对象都是可被迭代的。forEach()接受一个回调函数 callbackFn,每次迭代都回调该函数。
回调函数的参数列表为(value,key,iterable),依次是(值,键,可迭代的对象本身)。
iterable.forEach(function(value, key, iterable) { console.log(key, value, iterable); }