通常情况下,退出循环通过两个关键字:return 和 break,但是具体使用场景是什么呢?有没有一些不能用这两种方法呢?因此,作出如下总结。
(1)退出 if
return
if(a > 3) {
return; // return false
}
(2)退出 for
break
var a = [1, 2, 3, 4, 5, 6]
for(var i = 0; i < a.length; i++) {
console.log('index: ', i, ' item: ', a[i]);
if(i == 4) {
break;
}
}
/*
index: 0 item: 1
index: 1 item: 2
index: 2 item: 3
index: 3 item: 4
index: 4 item: 5
*/
(3)退出 forEach
try ... catch 异常捕获处理
会发现,在 forEach 循环中使用如(1)中所示的 return,无效,并没有起到退出当前循环的作用
会发现,在 forEach 循环中使用如(2)中所示的 break,报错:使用 break 不合法
1、使用 try 监视代码块,在需要中断循环退出循环的地方抛出异常,并可以在 catch 中捕获到异常并打印出来
var a = [1, 2, 3, 4, 5, 6]
try {
a.forEach((item, index) => {
console.log('index: ', index, ' item: ', item)
if( index == 4) {
throw new Error('退出forEach')
}
})
} catch(err) {
console.log('已退出', err)
}
/*
index: 0 item: 1
index: 1 item: 2
index: 2 item: 3
index: 3 item: 4
index: 4 item: 5
已退出 Error: 退出forEach
*/