2

もしも

true && (function () { console.log('executed'); })()

大丈夫、それならなぜ

true && continue;

また

true && (continue);

動作しません。たとえば、V8(ノード)は次をスローします。

SyntaxError: Unexpected token continue
4

2 に答える 2

2

JavaScriptには、式とステートメントがあります。ステートメントには式を含めることができますが、その逆はできません。ステートメントtrue && false;は式ステートメントです。

&&2つの式が必要です。

true(function() { ... })()は両方ともです。ブール式はに評価されtrue、関数式(括弧で囲まれてから呼び出される)はに評価されundefinedます。

continueステートメントであるため、を使用することはできません&&。条件が真のときに実行されるステートメントを受け入れるifため、を使用する必要があります。if

これは仕様による正しい動作であり、V8固有のものであってはなりません。

于 2012-04-06T14:12:42.527 に答える
0

continue値を返す式ではないからです。また、完全なブール式とその部分は、何らかの値を返す必要があります。

于 2012-04-06T14:06:04.910 に答える