如果
true && (function () { console.log('executed'); })()
可以,那为什么
true && continue;
或者
true && (continue);
不起作用,例如 V8 (Node) 抛出:
SyntaxError: Unexpected token continue
如果
true && (function () { console.log('executed'); })()
可以,那为什么
true && continue;
或者
true && (continue);
不起作用,例如 V8 (Node) 抛出:
SyntaxError: Unexpected token continue
在 JavaScript 中,有表达式和语句。语句可以包含表达式,但反之则不行。该语句true && false;
是表达式语句。
&&
需要两个表达式。
true
和都是表达式- 一个布尔表达式评估为(function() { ... })()
,一个函数表达式(包裹在括号内然后调用)评估为。true
undefined
continue
是一个语句,所以你不能使用&&
. 您必须使用if
,因为if
确实接受在条件为真时运行的语句。
根据规范,这是正确的行为,不应该是特定于 V8 的。
因为continue
不是返回一些值的表达式。完整的布尔表达式及其部分必须返回一些值。