关键词

JS判断对象是否存在的10种方法总结

JS判断对象是否存在的10种方法总结

在开发中,我们常常需要判断一个对象是否存在,因为如果一个对象不存在,我们无法对它进行操作。以下是10种判断一个对象是否存在的方法。

1. 使用typeof

使用typeof判断一个变量是否为undefined,如果是,说明对象不存在。

示例:

if (typeof obj === 'undefined') {
  console.log('对象不存在');
}

2. 使用in

使用in判断属性是否存在于对象中,如果存在返回true,否则返回false。

示例:

if ('key' in obj) {
  console.log('属性存在于对象中');
} else {
  console.log('属性不存在于对象中');
}

3. 判断对象是否为空

使用以下方式判断对象是否为空。

if (JSON.stringify(obj) === '{}') {
  console.log('对象为空');
} else {
  console.log('对象不为空');
}

4. 使用hasOwnProperty

hasOwnProperty是JavaScript的对象方法,用于检测一个对象是否含有特定的属性且此属性非继承而来的。

if (obj.hasOwnProperty('key')) {
  console.log('对象含有此属性');
} else {
  console.log('对象不含有此属性');
}

5. 使用instanceof

使用instanceof运算符来判断对象是否为某个类的实例。

if (obj instanceof Array) {
  console.log('对象是Array类型的实例');
} else {
  console.log('对象不是Array类型的实例');
}

6. 判断对象是否为null

使用以下方式判断对象是否为null。

if (obj === null) {
  console.log('对象为null');
} else {
  console.log('对象不为null');
}

7. 使用try-catch

使用try-catch语句块来判断对象是否存在。

try {
  if (obj) {
    console.log('对象存在');
  }
} catch (e) {
  console.log('对象不存在');
}

8. 使用Object.keys

使用Object.keys获取对象中所有的键,判断是否为一个空数组即可。

if (Object.keys(obj).length === 0) {
  console.log('对象为空');
} else {
  console.log('对象不为空');
}

9. 使用null检查

使用null检查来判断对象是否存在。

if (obj !== null) {
  console.log('对象存在');
} else {
  console.log('对象不存在');
}

10. 使用try-catch-typeof

使用try-catch-typeof组合来判断对象是否存在。

try {
  if (typeof obj !== 'undefined') {
    console.log('对象存在');
  }
} catch (e) {
  console.log('对象不存在');
}

简单总结一下:

  • typeof判undefined,适用于快速判断对象是否存在,但不能区分null。
  • in判属性存在,适用于验证对象属性是否存在,包括原型继承的。
  • Object.keys判空,适用于判断对象是否为空对象。
  • hasOwnProperty判对象是否包含某个属性,不会像用in一样沿原型链去找属性。
  • instanceof判实例,适用于判断对象类型是否为某种构造函数的实例。
  • 三目运算符、&&运算符、||运算符都可以判断对象是否存在。
  • 使用try-catch可以判断对象是否存在,但不建议在代码中滥用。
  • 总体而言,根据不同的情况选择不同的方法进行判断。

以上10种方法可以根据具体场景和需求进行更优化的使用,掌握这些方法可以让我们更好的去写出高质量的JS代码。

本文链接:http://task.lmcjl.com/news/1240.html

展开阅读全文