JavaScript学习笔记:对象属性检测

JavaScript对象可以看作是一个属性的集合,很多时候需要看某个属性是否存在于某个对象中。在JavaScript中对象属性的检测主要有以下几种方法。

  • in运算符
  • hasOwnProperty()方法
  • propertyIsEnumerable()方法
  • !==undefined

接下来看这四种方法怎么检测对象属性。

in运算符

使用in运算符可以检测对象属性,如果指定的属性存在于指定的对象中,就会返回true,反之返回的是false

下面的例子演示了in是如何检测对象属性的。

var myCar = {
    'make': 'Honda',
    'model': 'Accord',
    'year': 1998
}

'make' in myCar; // true
'name' in myCar; // false
'toString' in myCar; // true

在使用in运算符做对象属性检测时,运算符右侧必须是一个对象,比如可以是一个string包装的对象,但不能是一个字符串原始值。

var name = new String('w3cplus');
'length' in name; // true
'w3cplus' in name; // false

// Chrome输出
name => String {0: "w", 1: "3", 2: "c", 3: "p", 4: "l", 5: "u", 6: "s", length: 7, [[PrimitiveValue]]: "w3cplus"}
typeof name => object

var name = 'w3cplus';
'length' in name; //false
'w3cplus' in name; // false

// Chrome输出
name => "w3cplus"
typeof name => string

使用delete运算符删除了一个对象一个属性,这时使用in运算符检测删除的属性时会返回false

var obj = {
    'name': 'w3cplus',
    'type': 'blog'
}

d
剩余80%内容付费后可查看
* 请输入阅读码(忘记阅读码?

如需转载,烦请注明出处:https://www.w3cplus.com/javascript/object-properties-detection-method.html

如果文章中有不对之处,烦请各位大神拍正。如果你觉得这篇文章对你有所帮助,打个赏,让我有更大的动力去创作。(^_^)。看完了?还不过瘾?点击向作者提问!

赏杯咖啡,鼓励他创作更多优质内容!
返回顶部