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

相关推荐
小小程序猴12 分钟前
用工程视角建模企业AI培训周期:三段账本估算器(Python实现)
开发语言·人工智能·python
一木 之林12 分钟前
LangChain 第6章 Agent 智能体核心:create_agent 统一入口与 ReAct 循环
前端·react.js·langchain
开开心心_Every27 分钟前
文件查重软件批量删除重复文件释放空间
java·开发语言·c#·计算机外设·ocr·excel·perl
不可能片场31 分钟前
Electron 发布进程被回收 用脱离进程组托住
前端·electron
kaixin_learn_qt_ing37 分钟前
hexdump -C /path/to/binary | less 看十六进制内容
前端·css·less
java1234_小锋39 分钟前
【技术专题】HTML5 网页技术 - HTML5 链接与图片
前端·html·html5
sun_weitao41 分钟前
Chrome 扩展插件开发指南
前端·javascript·chrome
认真的小羽❅43 分钟前
ThreadLocal 在虚拟线程间要小心
java·开发语言·jvm
普通人61 小时前
宝塔中实现按地区过滤和官网跳转伪静态
服务器·开发语言·nginx·1024程序员节
美味蛋炒饭.1 小时前
Java八股面试(4)
java·开发语言·面试