もしも
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;
は式ステートメントです。
&&
2つの式が必要です。
true
と(function() { ... })()
は両方とも式です。ブール式はに評価されtrue
、関数式(括弧で囲まれてから呼び出される)はに評価されundefined
ます。
continue
はステートメントであるため、を使用することはできません&&
。条件が真のときに実行されるステートメントを受け入れるif
ため、を使用する必要があります。if
これは仕様による正しい動作であり、V8固有のものであってはなりません。
continue
値を返す式ではないからです。また、完全なブール式とその部分は、何らかの値を返す必要があります。