坑-JavaScript

Uncaught SyntaxError: Illegal break statement(非法的 break 语句)

1
[1,2,3,4,5,6].map(i => {if(i==3) throw Error(); console.log(i)})

break 语句中止当前循环switch语句label 语句,并把程序控制流转到紧接着被中止语句后面的语句。

1
2
3
4
5
let arr = [1,2,3,4,5,6]
for(var i=0; i<arr.length; i++) {
if(arr[i] === 3) break;
console.log(arr[i])
} // 1,2

map,forEach 中使用try…catch + throw Error 模拟 break

1
2
3
try {
[1,2,3,4,5,6].map(i => {if(i==3) throw Error(); console.log(i)})
} catch {} // 1,2

未解决疑问,在定义之前调用原型方法无效