true && (function() { console.log('executed'); })()
是确定的,那么为什么
true && continue;
或
true && (continue);
不起作用,例如V8(节点)抛出:
SyntaxError: Unexpected token continue
true && (function() { console.log('executed'); })()
是确定的,那么为什么
true && continue;
或
true && (continue);
不起作用,例如V8(节点)抛出:
SyntaxError: Unexpected token continue
在JavaScript中,有表达式和语句。语句可以包含表达式,但不能反过来。语句true && false;
是一个表达式语句。
&&
需要两个表达式。
两个true
和(function() { ... })()
是表达式 - 一个布尔表达式计算到true
,并评估对undefined
函数表达式(包裹括号内,然后调用)。
continue
是声明,所以你不能使用&&
。您必须使用if
,因为if
确实接受条件为true时要运行的语句。
根据规范它是正确的行为,不应该是V8特定的。
因为continue
不表达返回一些值。完整的布尔表达式及其部分必须返回一些值。
对此有何用处?继续用于早期跳出循环/条件。它不是一个布尔值 – jzworkman 2012-04-06 14:06:06
[这里](https://github.com/shichuan/javascript-patterns/blob/master/general-patterns/conditionals.html)见第125行 – jakubmal 2012-04-06 14:15:24
这个例子与使用'continue '。虽然它仍然是一个声明,并且不能像下面解释的那样使用,但在布尔语句中继续使用将永远不会完成,只是想知道为什么您将此用作示例而不是使用真正的&&结果++这是您的真实示例。 – jzworkman 2012-04-06 14:20:49