【js】如何判断对象是否存在某个属性

我们先假设这个对象是obj,需要判断的属性是age。

(1)️obj.hasOwnProperty('age')⽅法:该⽅法返回⼀个布尔值,存在age就返回true,否则返回false。这个⽅法只判断⾃身上的属性,不会去查找原型上是否有age属性。

(2)判断obj.age != undefined 或 obj'age' != undefined:如果对象上不存在age属性,则返回

undefined。它会从⾃身和其原型链上找这个age属性。注意:该⽅法不能⽤在对象的属性值存在但属性

值为 undefined 的场景下,⽐如obj⾥有age属性,age的值是undefined,那么此时obj.age就等于

undefined,这时我们不能就认为没有age属性,实际这个属性是存在的,只是它的值和我们判断的标准

⼀致了。

(3)运⽤ in 运算符:该⽅法和第⼆种⽅式⼀样,会从⾃身和原型链上查找属性。如果'age' in obj返回的是true,那么说明在这个对象或者其原型链中存在age属性。

相关推荐
m0_380743875 分钟前
PHP7.3和7.2字符串功能有什么不同
开发语言·php
计算机魔术师16 分钟前
半年翻倍!OpenAI再融300亿,估值冲到1.4万亿
前端
研☆香38 分钟前
jQuery + Swiper.js 实现动态渲染轮播图
前端·javascript·jquery
m0_3807438739 分钟前
PHP 8.4的新语法怎么用才规范
开发语言·php
阿狗童鞋1 小时前
Java并发编程实战指南
java·开发语言
子兮曰1 小时前
Node.js 50个优势场景盘点:一个人单干,为啥我多数时候只用它
前端·后端
phltxy1 小时前
C 语言自定义类型:结构体、位段、枚举与联合体
c语言·开发语言
IT_陈寒1 小时前
我花3小时debug,就因为JavaScript这个隐式转换坑
前端·人工智能·后端
Sarvartha2 小时前
对象创建与引用
java·开发语言
excel2 小时前
Nuxt 中 useSeoMeta 与 useHead 的区别
前端