JavaScript 関数から `undefined` を返すか `null` を返す方がよいでしょうか? 質問する

JavaScript 関数から `undefined` を返すか `null` を返す方がよいでしょうか? 質問する

私が書いた関数は基本的に次のようになります:

function getNextCard(searchTerms) {
  // Setup Some Variables

  // Do a bunch of logic to pick the next card based on termed passed through what I'll call here as 'searchTerms' all of this logic is omitted because it's not important for my question.
  // ...

  // If we find a next card to give, than give it
  if (nextCardFound)
    return nextCardFound;

  // Otherwise - I'm returning undefined
  return undefined;
}

質問: ここで「null」を返す方が良いでしょうか?

当然ですが、何でも返せます...ただ、何を使うのが最善かはわかりませんでした。

この関数を呼び出すコードは、undefined を処理する方法を知っています (何かひどい問題が発生しない限り、実際には発生しません)

私がこの質問をしている理由は、どこかで「変数に undefined を割り当てないでください」とか何とか言っていたのを聞いたからです。そうするとデバッグが難しくなるそうです。つまり、 が返さnullれるのがわかるということは、戻りが機能しているということですが、基本的には と同様に機能しますundefined


ドキュメンテーション:

Mozilla ドキュメント私の質問には答えてくれませんでした... Google も答えてくれませんでした :\

このSOの質問- ここで私が理解しようとしていることに対して範囲が広すぎました。

ベストアンサー1

Undefined は通常、まだ値が割り当てられていないものを指します。Null は明らかに値がないものを指します。その場合は、null を返すことをお勧めします。戻り値が指定されていない関数は暗黙的に undefined を返すことに注意してください。

ECMAScript2015仕様より

4.3.10 未定義の値

変数に値が割り当てられていない場合に使用されるプリミティブ値

4.3.12 ヌル値

意図的にオブジェクト値が存在しないことを表すプリミティブ値

http://www.ecma-international.org/ecma-262/6.0/#sec-terms-and-definitions-undefined-type

参考文献:

JavaScript で null または undefined が使用されるのはいつですか?

おすすめ記事