【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属性。

相关推荐
芳草萋萋鹦鹉洲哦2 分钟前
【vue/js】文字超长悬停显示的几种方式
前端·javascript·vue.js
孤独斗士13 分钟前
maven的pom文件总结
java·开发语言
confiself14 分钟前
通义灵码分析ms-swift框架中CHORD算法实现
开发语言·算法·swift
1024小神15 分钟前
在 Swift 中,self. 的使用遵循明确的规则
开发语言·ios·swift
Swift社区18 分钟前
Swift 类型系统升级:当协议遇上不可拷贝的类型
开发语言·ios·swift
HIT_Weston19 分钟前
47、【Ubuntu】【Gitlab】拉出内网 Web 服务:Nginx 事件驱动分析(一)
前端·ubuntu·gitlab
chengpei14719 分钟前
I²C协议简介
c语言·开发语言
唐古乌梁海19 分钟前
【IT】常见计算机编程语言多继承问题
开发语言
雨中散步撒哈拉21 分钟前
18、做中学 | 初升高 | 考场一 | 面向过程-家庭收支记账软件
开发语言·后端·golang
开发者小天38 分钟前
React中的 闭包陷阱
前端·javascript·react.js