オープンソース プロジェクトから取得した大規模な JavaScript ドキュメントをリファクタリングしています。いくつかの関数で、一貫性のない return ステートメントが使用されています。以下は、私が言いたいことの簡単な例です。
var func = function(param) {
if (!param) {
return;
}
// do stuff
return true;
}
関数はブール値を返す場合もあれば、文字列やその他の値を返す場合もあります。通常、それらはreturn;
条件文内の単純なステートメントと一貫性なく組み合わせられます。
問題は、コードが複雑であることです。これは、多数の一意の RegEx マッチを使用し、DOM ノードをオンザフライで作成および破棄するなどのパーサーです。予備テストでは、上記の例では、ステートメントをreturn;
に変更できることreturn false;
がわかりましたが、スクリプトに悪影響 (つまり、一部の機能が動作しなくなった) があることに気付くのがずっと後になるのではないかと心配しています。
そこで質問です。空の return ステートメントを使用する利点はありますか? これは意図的にこのようにコード化されたのでしょうか、それとも単に怠惰だったのでしょうか? すべてを に変更できますreturn false;
か、return null;
それともすべての呼び出しを調べて、それらの関数の結果で何が行われているのかを調べる必要がありますか?
ベストアンサー1
return
値なしで使用すると、値 が返されますundefined
。
値がブール値として評価される場合、undefined
は として機能しますがfalse
、たとえば値が と比較される場合false
、異なる動作になります。
var x; // x is undefined
alert(x); // shows "undefined"
alert(!x); // shows "true"
alert(x==false); // shows "false"
したがって、コードは論理的にtrue
は またはfalse
ではなくまたは を返す必要がありますtrue
が、戻り値がどのように使用されるかを確認せずににundefined
変更することはできません。return;
return false;