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