javascript_javascript スキルを使用してオブジェクトに特定の属性が存在するかどうかを判断する方法の概要

WBOY
リリース: 2016-05-16 17:33:31
オリジナル
1163 人が閲覧しました

オブジェクト内の属性の有無を検出するには、いくつかの方法があります。
1. in キーワード
を使用します。このメソッドは、オブジェクト自身のプロパティと継承されたプロパティが存在するかどうかを判断できます。

コードをコピー コードは次のとおりです。

var o={x:1};
"x" in o; //true、独自のプロパティが存在します
"y" in o; //false
"toString" in o; //true、それは継承されたプロパティです

2. オブジェクトの hasOwnProperty() メソッドを使用します
このメソッドは、独自のプロパティが存在するかどうかのみを判断し、継承されたプロパティについては false を返します。
コードをコピー コードは次のとおりです。

var o={x:1};
o.hasOwnProperty("x"); //true、自身のプロパティに x が存在します
o.hasOwnProperty("y"); //false、自身のプロパティに y が存在しません
o.hasOwnProperty(" toString"); //false、これは継承されたプロパティですが、自己所有のプロパティではありません

3.
を判断するために未定義を使用します自己所有財産と相続財産の両方を判断することができます。
コードをコピー コードは次のとおりです。

var o={x:1};
o.x!==未定義; //true
o.y!==未定義; //false
o.toString!==未定義 //true

問題がありますこのメソッドでは、次のように、属性の値が定義されていない場合、このメソッドは望ましい結果を返すことができません。
コードをコピー コードは次のとおりです。
o.x!==未定義; //false、属性は存在しますが、値は未定義です
o.y!==未定義; //false
o.toString!==未定義 //true



4. 条件文で直接判定


コードをコピー コードは var o={};
if(o.x) o.x =1; //x が undefine、null、false、0、または NaN の場合はそのままになります。変更なし

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート