一、for循环(或者for in循环)
- break
- try catch (任何循环都可以通过try catch跳出循环)
return会报语法错误,所以这个不行。
var arr = ['a', 'b', 'c'];
// break
for (var key in arr) {
console.log(key);
if(arr[key] === 'a') {
break;
}
}
// 0
// try catch
try {
for (var key in arr) {
console.log(key);
if(arr[key] === 'a') {
throw new Error('跳出循环');
}
}
} catch(err) {
console.log(err);
}
// 0 Error: 跳出循环
// return
for (var key in arr) {
console.log(key)
if(arr[key] === 'a') {
return false;
}
}
// Uncaught SyntaxError: Illegal return statement
二、forEach、map、filter循环
- try catch
return不会报错,但是也不会终止循环。break会报语法错误。
var arr = ['a', 'b', 'c'];
// try catch
try {
arr.forEach(item => {
console.log(item);
if (item === 'a') {
throw new Error('aaaaaaaaaaa');
}
});
} catch(err) {
console.log(err); //
}
// 0 Error: aaaaaaaaaaa
// return
arr.forEach(item => {
if (item === 'a') {
return false;
}
console.log(item);
});
// b c
// break
arr.forEach(item => {
console.log(item);
if (item === 'a') {
break;
}
});
// Uncaught SyntaxError: Illegal break statement
三、every、some循环
- every: return false跳出循环, come: return true跳出循环
- try catch
every、some循环用 break 报语法错误