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