JavaScript 中的 Unsyntactic break 错误 [已解决]

当我们尝试在 for 循环外部或 for 循环中的函数内部使用 break 语句时,会发生“Unsyntactic break”错误。

let arr = ['a', 'b', 'c'];

arr.forEach(element => {
  if (element === 'b') {
    break // 👉️ SyntaxError: Unsyntactic break
  }
  console.log('test');
});

上面的代码片段会导致错误,因为我们尝试在函数中使用 break 语句。

要解决 JavaScript 中的“Unsyntactic break”错误:

如果我们在函数中并且无法使用 break 语句,则在 try/catch 块中抛出错误以跳出循环。

let arr = ['a', 'b', 'c'];

const BreakError = {};

try {
  arr.forEach(element => {
    if (element === 'b') {
      throw BreakError;
    }
    console.log(element); // 👉️ a
  });
} catch (err) {
  if (err !== BreakError) throw err;
}

在代码片段中,我们抛出一个错误以中断迭代。 我们不能在函数内部使用 break 关键字,因此我们将函数包装在 try/catch 块中,并在需要时抛出错误以退出。

我们可以在以下场景中使用 break 语句:

  • 基本的for循环
  • for … of 循环
  • for … in 循环
  • while 循环
  • switch 语句

如果我们正在使用 forEach 循环并尝试使用 break 语句,请尝试使用 for … of 循环。 我们可以在 for … of 循环中使用 break 关键字。

let arr = ['a', 'b', 'c'];

for (const element of arr) {
  if (element === 'b') {
    break;
  }
  console.log(element) // 👉️ a
}