判定方法: 1. "object.property name! == unknown" ステートメントを使用して判定します。戻り値が true の場合、オブジェクトに特定の属性が存在します。 2. "' ステートメントを使用します。 object" ステートメントのプロパティ名' で、true が返される場合、特定の属性があります。 3. "object.hasOwnProperty('プロパティ名')" ステートメントを使用します。
このチュートリアルの動作環境: Windows 7 システム、ECMAScript バージョン 6、Dell G3 コンピューター。
#es6 オブジェクトが特定の属性を持っているかどうかを判断する
方法 1: ポイント (.) 未定義判定
オブジェクトの属性値は、ドットまたは角括弧を使用して取得できることがわかっていますが、その属性がオブジェクトに存在しない場合は、未定義が返されます。このメソッドは、指定されたオブジェクトの独自のプロパティと継承されたプロパティを決定できます。オブジェクト自体に検出されたプロパティがなく、そのプロパティがプロトタイプ チェーン上にある場合は、プロトタイプ チェーン上のプロパティ値が返されます。// 创建对象 let obj = { name: 'Scarlett', age: 37 } console.log(obj.name !== undefined) // true 自身属性存在 console.log(obj.gender !== undefined) // false gender属性不存在 // 在原型上添加一个可枚举属性 Object.prototype.nationality = 'America' // 在obj对象上添加一个不可枚举属性 Object.defineProperty(obj, 'occupation', { value: 'actress', enumerable: false })
// 新增一个值为undefined的属性 obj.birthday = undefined console.log(obj.birthday !== undefined) // false
メソッド 2: 演算子内
このメソッドは、指定されたオブジェクトの独自の属性および継承された属性に特定の属性が存在するかどうかを判断し、存在する場合は true を返します。 。 in 演算子は、プロトタイプ チェーン上のプロパティを検出することもできます。'name' in obj // true 自身属性存在 'occupation' in obj // true 不可枚举属性存在 'nationality' in obj // true 继承属性 'birthday' in obj // true 值为undefined的属性
メソッド 3: Object.hasOwnProperty()
Object.hasOwnProperty() は、指定されたオブジェクト自体に特定の属性が含まれているかどうかを判断するために使用されます。 (継承されていません)、ブール値を返します。obj.hasOwnProperty('name') // true 自身属性 obj.hasOwnProperty('occupation') // true 不可枚举属性 obj.hasOwnProperty('birthday') // true obj.hasOwnProperty('nationality') // false 原型链上继承的属性
JavaScript ビデオ チュートリアル 、Web フロントエンド ]
以上がes6 でオブジェクトに特定の属性があるかどうかを判断する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。