もしも
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値を返す式ではないからです。また、完全なブール式とその部分は、何らかの値を返す必要があります。