for
arr = [11, 22, 33, 44, 55];for(let i=0; i<arr.length; i++) {console.log(arr[i])}
可以使用 continue 跳过一次循环,或者 break 终止循环
forEach
语法:**arr.forEach(callback[, thisArg]);
参数:
callback
thisArg ** 执行回调函数时 this 的值(参考对象),如果使用箭头函数会忽略 thisArg
arr = [11, 22, 33, 44, 55];arr.forEach((item, index, array) => {console.log(item, index, array);})
无法使用 continue 和 break
没有返回值
MDN:没有办法中止或者跳出 forEach() 循环,除了抛出一个异常。
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
return 可以终止函数执行,因此可以使用 return 跳过一次 forEach 循环,类似for循环中 continue 的效果
for…in
for...in语句以任意顺序遍历一个对象自有的、继承的、可枚举的、非Symbol的属性
obj = { name: 'jack', age: 22, car: 'BMW',school: 'hf' };for(var k in obj) {console.log(k, obj[k])}
可以使用 continue 跳过一次循环,或者 break 终止循环for...in不应该用于迭代一个 Array
for…of
for...of语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句
arr = [11, 22, 33, 44, 55];for(let v of arr){console.log(v)}
MDN:对于for...of的循环,可以由break, throw continue 或return终止
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/for…of#关闭迭代器
实测发现:可以使用 continue | break | throw
return
return 语句终止函数的执行,并返回一个指定的值给函数调用者
如果没有返回值,则默认返回 undefined

