私はfoo
というオブジェクトを持っています。私はそれがプロパティーbar
を持っているかどうかをチェックしたいと思います。オブジェクト内のプロパティの存在をチェックするための "typeof"と "in"の比較
if ("bar" in foo)
はどんな違いがあります:
if (typeof foo.bar !== "undefined")
またはこの:
私はこれを使用する必要がありますか?
私はfoo
というオブジェクトを持っています。私はそれがプロパティーbar
を持っているかどうかをチェックしたいと思います。オブジェクト内のプロパティの存在をチェックするための "typeof"と "in"の比較
if ("bar" in foo)
はどんな違いがあります:
if (typeof foo.bar !== "undefined")
またはこの:
私はこれを使用する必要がありますか?
「typeof演算」プロパティがあればtrueを返します「に」、プロパティが存在する場合は気にしたりせず、プロパティが存在するが、「未定義」
ながらの値を有する場合であっても、それは未定義返されますされません存在し、例えば「未定義」
の価値を持って、次はあなたが使用するかによって真か偽のいずれかを返します:
let person = {
name: 'John',
age: undefined
}
console.log('age' in person)
// true
console.log(typeof person.age !=="undefined")
//false
ジョナス、多分年齢の代わりにperson.ageのタイプをチェックするつもりでしたか? – Ahmad
あなたの質問は、「オブジェクトのプロパティの存在をチェックするための「最良の」もの」のように、後者("bar" in foo
)があなたが探しているものです。
if("bar" in foo)
の結果は、「あなたが求めている 'bar'プロパティがfooにある場合にのみこれを行います。
また、typeof foo.bar != "undefined"
に行くこともできますが、それは無駄な余計なものになります。
後でもっと明確に見えます。私は違いがないとは思わない。 –
彼らは異なった結果を持っています... – Ahmad