javascript预期表达式,得到关键字“ break”

时间:2019-06-04 15:21:11

标签: javascript

为什么以下代码在Javascript中使用三元运算符会引发SyntaxError:

firstblock:{
a||b ? console.log(1) : (console.log(2), break firstblock);
console.log(3);
}

但以下使用if / else而不是三进制的内容不是:

firstblock:{
if(a||b) {console.log(1)} else {console.log(2); break firstblock};
console.log(3);
}

1 个答案:

答案 0 :(得分:4)

break不是表达式,而是语句。三元运算符用于根据条件评估表达式。您无法在三元运算符中执行语句。

根据MDN,三元运算符的语法为

语法

  

条件? exprIfTrue:exprIfFalse

这里expr表示表情。

if-else视为两个不同的分支,您可以在其中完成通常可以做的所有事情。您可以执行诸如return; break等之类的语句(不返回值的代码)。

三元运算符是一种只返回表达式(返回值的代码)的方法。在这种情况下,您只能编写表达式。

您不能使用return;之后类似break的语句,即return break;是无效代码,就像您不能在三元运算符中使用语句一样。