1. ホーム
  2. javascript

[解決済み] JavaScriptのオブジェクトにキーが存在するかどうかをチェックする?

2022-03-16 10:53:23

質問

JavaScriptのオブジェクトや配列に特定のキーが存在するかどうかを確認するにはどうすればよいですか?

キーが存在しない場合、そのキーにアクセスしようとすると、falseを返すのでしょうか?あるいはエラーを投げるのでしょうか?

どのように解決するのですか?

未定義かどうかをチェックすることは、キーが存在するかどうかをテストする正確な方法ではありません。もしキーが存在しても、その値が実際には undefined ?

var obj = { key: undefined };
console.log(obj["key"] !== undefined); // false, but the key exists!

代わりに in 演算子を使用します。

var obj = { key: undefined };
console.log("key" in obj); // true, regardless of the actual value

キーが存在しないかどうかを確認したい場合は、括弧を使用することを忘れないでください。

var obj = { not_key: undefined };
console.log(!("key" in obj)); // true if "key" doesn't exist in object
console.log(!"key" in obj);   // Do not do this! It is equivalent to "false in obj"

また、オブジェクトのインスタンスのプロパティ (継承されたプロパティではない) を特にテストしたい場合は、次のようにします。 hasOwnProperty :

var obj = { key: undefined };
console.log(obj.hasOwnProperty("key")); // true

というメソッドの性能比較のために in , hasOwnProperty で、キーは undefined を参照してください。 これ ベンチマーク :