7

私が何かをしreturn a ? b : c;たり、return a && a2 && a3;

正当なものとして評価されreturn a、残りを評価する直前に関数が返されることはありますか?

4

3 に答える 3

8

returnではなくステートメントです。ですから、あなたが思うように誤解されることは決してありません。

ステートメントは常に形式return [some expression];です (式はオプションです)。式が存在する場合は、最初に評価され、その値が関数の戻り値にバインドされます。

于 2013-09-11T22:23:24.527 に答える
2

これを明確にするために、質問を少し言い直します。

return a ? b() : c();

return a && a2() && a3();

最初のケースでは、 または のいずれbcが呼び出されますが、もう一方は呼び出されません。

2 番目のケースでは、aが false の場合、どちらa2a3呼び出されません。a2false を返す場合、a3呼び出されません。

于 2013-09-11T22:26:37.077 に答える