2013-10-17 8 views
5

私はこの方法でオブジェクトを返す必要があります何も見つからない場合、検索メソッドは何を返すべきですか?

var link = this.find_first_link(selectedElem); 

を持っています。要素が見つからない場合、何が返されるべきかわからない - null、undefinedまたはfalse?私はそれがここに合うとは思わないので、私は '偽の'オプションを拒否しました。したがって、私はnullとundefinedを選択しています。私は、 'undefined'はある種の例外またはエラーが発生する場所で使用する必要があるので、現在このメソッドはnullを返すことを読んでいます。それは大丈夫ですか?

答えて

6

あなたのブラウザで行っている方法を見てください。

getElementByIdは、idが指定された要素がない場合はnullを返します。

これは、nullがオブジェクトの不在を表すために設計されたものです(typeof null"object")。期待される戻り値の型が"object"ですが、返すオブジェクトがない場合に使用してください。これは、undefinedよりも優れています。なぜなら、変数に何を入れるべきかを決定する前であっても、関数を呼び出す前にundefinedになるからです。 the description of null in the MDNから

のAPIで

、ヌルは、多くの場合、オブジェクトは を期待できる場所で検索されたが、何のオブジェクトが関連していません。

はい、nullを使用してください。

+5

あなたの関数があるものを返す必要があるが、関数が配列の配列を返す必要がある場合はnullを返さない場合はnullを返します。配列を返す関数の場合、何も見つからなければ空の配列を返すべきです。このような場合にnullが返されるコードがたくさんあり、forループの前に常に愚かな '!= null'チェックが行われています。 – slebetman

+1

疑わしい場合は、既存のAPIを確認することをおすすめします。 – promanski

0

はい、

VARリンク= this.find_first_link(selectedElem)。

NULLを返します。

+2

OPは結果がない場合、彼のメソッド 'find_first_link'が返すべきものを尋ねています。それが*現在何を返すのではない。 – Marty

関連する問題