for
continue语句
概述: continue 语句结束当前(或标签)的循环语句的本次迭代,并继续执行循环的下一次迭代。
注意:
与 break 语句的区别在于, continue 并不会终止循环的迭代,而是:
在 while 循环中,控制流跳转回条件判断;
在 for 循环中,控制流跳转到更新语句。
continue 语句可以包含一个可选的标号以控制程序跳转到指定循环的下一次迭代,而非当前循环。此时要求 continue 语句在对应的循环内部。(摘自MDN)
continue
语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代。
for (let i = 0; i < arr.length; i++) {
if (i === 2) {
continue
}
console.log('for===', arr[i])
}
// 结果
// for===continue 1
// for===continue 2
// for===continue 4
// for===continue 5
双层for循环中内层用continue
for (let i = 0; i < 10; i += 1) {
for (let j = 0; j < 5; j += 1) {
if (j === 5) {
continue;
}
console.log(`当前j:${j}`);
}
console.log(`当前i:${i}`);
}
break语句
break
语句可用于跳出循环
for (let i = 0; i < arr.length; i++) {
if (i === 2) {
break
}
console.log('for===break', arr[i])
}
// 结果
// for===break 1
// for===break 2
双层for循环中内层用break
for (let i = 0; i < 10; i += 1) {
for (let j = 0; j < 5; j += 1) {
if (j === 3) {
break;
}
console.log(`当前j:${j}`);
}
console.log(`当前i:${i}`);
}
结论:break用于双层forEach中是跳出内层循环,继续外层的下一次循环。
forEach
注意: 没有办法中止或者跳出 forEach 循环,除了抛出一个异常。如果你需要这样,使用forEach()方法是错误的,你可以用一个简单的循环作为替代。如果您正在测试一个数组里的元素是否符合某条件,且需要返回一个布尔值,那么可使用 Array.every 或 Array.some。如果可用,新方法 find() 或者findIndex() 也可被用于真值测试的提早终止。(摘自MDN)
forEach中不能使用 continue
和 break
return语句
forEach中使用 return
语句的作用只能跳出当前循环,并不能跳出整个循环。
arr.forEach((a, i) => {
if (i === 2) {
return
}
console.log('forEach===return', a)
})
// 结果
// forEach===return 1
// forEach===return 2
// forEach===return 4
// forEach===return 5
如果需要跳出整个循环,需要throw抛异常,如下
try {
arr.forEach((a, i) => {
if (i === 2) {
throw new Error()
}
console.log('forEach===throw', a)
})
} catch (e) {
console.log(e)
}
return是用于函数中的哦,for语句中不能使用return哦
链接: 参考链接