web-dev-qa-db-ja.com

オブジェクトがJavaScriptのキーを持っているかどうかをどうやって確認するのですか?

正しいことはどれですか。

if (myObj['key'] == undefined)

または

if (myObj['key'] == null)

または

if (myObj['key'])
894
kevin

JavaScript in operator を試してください。

if ('key' in myObj)

そしてその逆。

if (!('key' in myObj))

気をつけて! in演算子は、オブジェクトのプロトタイプチェーンに含まれるものも含め、すべてのオブジェクトキーと一致します。

オブジェクト自身のキーをチェックするにはmyObj.hasOwnProperty('key')を使用し、truekeyで直接利用可能な場合にのみmyObjを返します。

myObj.hasOwnProperty('key')

in演算子を使用する特別な理由がない限り、myObj.hasOwnProperty('key')を使用すると、ほとんどのコードが探している結果が得られます。

1600
ForYourOwnGood

hasOwnProperty を使うべきです。例えば:

myObj.hasOwnProperty('myKey');
401
typeoneerror