如果
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() { ... })(),一个函数表达式(包裹在括号内然后调用)评估为。trueundefined
continue是一个语句,所以你不能使用&&. 您必须使用if,因为if确实接受在条件为真时运行的语句。
根据规范,这是正确的行为,不应该是特定于 V8 的。
因为continue不是返回一些值的表达式。完整的布尔表达式及其部分必须返回一些值。