0

ときどき、次のパターンを目にします。

if (!obj[key]) {
    // key does not exist inside object
    obj[key] = ...
} else {
    // maybe do something else with obj[key]
}

しかし、私はそれが非常に間違っていると思います。実際に obj[key] の値がfalseorだっ''たら? それから、コードは私には意味がありません。

これを頻繁に目にする理由はありますか? オブジェクトのプロパティとして a が存在する.hasOwnProperty()かどうかを確認するために人々が使用しないのはなぜですか?key

4

2 に答える 2

0

in次の演算子を使用する必要があります。

"key" in obj // true, regardless of the actual value

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

obj.hasOwnProperty("key") // true

hasOwnProperty にあるメソッドとキーが定義されていないメソッド間のパフォーマンス比較については、このリファレンスを確認してください

于 2021-02-02T12:54:47.757 に答える