[每次突破] JavaScript 如何判断属性是否存在

JavaScript 属性存在性判断:五种方法及优缺点分析

在 javascript 开发中,判断对象属性是否存在并非易事,因为 javascript 的灵活性导致“存在”的定义存在多种解读。本文将探讨五种常用的属性存在性判断方法,并分析其优缺点。

[每次突破] JavaScript 如何判断属性是否存在

方法一:布尔值判断

这种方法直接利用属性值进行布尔判断:

const obj1 = { name: 'andy', age: 21 };const obj2 = { name: 'alice' };console.log(obj1.age ? '存在' : '不存在'); // 存在console.log(obj2.age ? '存在' : '不存在'); // 不存在

缺点: 无法区分属性值为 0、空字符串、NaNundefined 等与属性不存在的情况。例如: { name: 'baby', age: 0 } 中的 age 属性会被判断为“不存在”。 适用场景仅限于属性值保证不会出现上述情况的业务逻辑。

立即学习“Java免费学习笔记(深入)”;

方法二:可选链和 undefined 检查

利用可选链运算符 (?.) 和 undefined 判断:

const obj1 = { name: 'andy', age: 21 };const obj2 = { name: 'alice' };console.log(obj1?.age !== undefined ? '存在' : '不存在'); // 存在console.log(obj2?.age !== undefined ? '存在' : '不存在'); // 不存在

缺点: 无法区分属性值为 undefined 与属性不存在的情况。 { name: 'andy', age: undefined } 中的 age 属性会被判断为“存在”。 同样需要根据具体业务场景判断适用性。

方法三:Object.keys() 方法

使用 Object.keys() 获取对象自身的可枚举属性名进行判断:

const obj = { name: 'andy', age: 21 };console.log(Object.keys(obj).includes('age') ? '存在' : '不存在'); // 存在

缺点: 只检查对象自身属性,忽略原型链上的属性;仅检查可枚举属性,忽略不可枚举属性。 Object.defineProperty() 可以创建不可枚举属性,导致该方法无法检测到。

方法四:Object.hasOwn()hasOwnProperty() 方法

Object.hasOwn() (ES2022) 和 hasOwnProperty() 方法检查对象自身属性是否存在,不考虑原型链和可枚举性:

const obj = {};Object.defineProperty(obj, 'name', { value: 'andy', enumerable: false });console.log(Object.hasOwn(obj, 'name') ? '存在' : '不存在'); // 存在console.log(obj.hasOwnProperty('name') ? '存在' : '不存在'); // 存在

优点: 更可靠地判断对象自身属性是否存在,不受可枚举性影响。 Object.hasOwn() 避免了 hasOwnProperty() 可能被覆盖的问题。

方法五:in 运算符

in 运算符判断属性是否存在于对象或其原型链中:

const obj = Object.create({ name: 'Andy' });console.log('name' in obj ? '存在' : '不存在'); // 存在console.log(Object.hasOwn(obj, 'name') ? '存在' : '不存在'); // 不存在

缺点: 会检查原型链上的属性,可能导致误判。

总结

选择哪种方法取决于具体的业务需求。 如果需要严格判断对象自身属性是否存在,推荐使用 Object.hasOwn()。 如果需要考虑原型链上的属性,则可以使用 in 运算符。 其他方法则需要根据实际情况谨慎使用,并充分考虑其局限性。 理解 JavaScript 的原型链和属性描述符对于正确选择和使用这些方法至关重要。

以上就是[每次突破] JavaScript 如何判断属性是否存在的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1500524.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
停止在 Props 中使用匿名函数!
上一篇 2025年12月19日 22:39:20
#DAYSOFCODE:第 14 天
下一篇 2025年12月19日 22:39:40

相关推荐

  • 谷歌加速AI竞赛,全面推出Gemini 2.0系列模型

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 谷歌强势推出Gemini 2.0系列AI模型,以应对来自中国DeepSeek等新兴AI公司的挑战。该系列包含Flash、Pro和Flash-Lite三个版本,为开发者和用户提供更强大、更高效的A…

    2026年9月4日
    100
  • 总投资90亿!惠科股份Mini LED项目开工

    惠科股份90亿mini led项目在浏阳开工! ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 2月5日,浏阳市举行2025年首批重大项目集中开工仪式,其中备受瞩目的惠科Mini-LED背光/直显模组及整机项目正式启动。 该项目于今年1月9日…

    2026年9月4日
    500
  • 《节奏光剑》今年6月后PS平台不再有新内容

    由捷克独立游戏工作室beat games于2018年推出的虚拟现实(vr)音乐游戏《节奏光剑(beat saber)》,宣布将从2025年6月起停止对ps4和ps5平台(包括psvr及psvr 2)的新内容支持。 针对PS4与PS5平台: 自2025年6月起,将不再推出新内容更新 到2026年1月2…

    2026年9月4日
    000
  • 2024年晶圆代工市场年增长22%,台积电2025年持续维持领头羊地位

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 据市场研究机构Counterpoint Research最新报告,2024年全球晶圆代工市场年增长率达22%,展现出强劲复苏势头。 报告指出,这一增长主要源于AI应用驱动的数据中心和边缘计算对先…

    2026年9月4日
    000
  • 飞利浦EVNIA助力永劫无间NBPL春季赛决赛,见证巅峰对决,打造超凡盛宴!

    飞利浦EVNIA助力永劫无间NBPL春季赛决赛,见证巅峰对决,打造超凡盛宴!飞利浦EVNIA助力永劫无间NBPL春季赛决赛,见证巅峰对决,打造超凡盛宴!飞利浦EVNIA助力永劫无间NBPL春季赛决赛,见证巅峰对决,打造超凡盛宴!飞利浦EVNIA助力永劫无间NBPL春季赛决赛,见证巅峰对决,打造超凡盛宴!

    战火席卷魔都,豪杰无间争锋!5月31日-6月1日,2025《永劫无间》nbpl春季赛总决赛在玩家们的热切期盼中圆满收官。这场备受瞩目的电竞盛事吸引了超百万名玩家线上线下共同围观,将赛事气氛推向巅峰。飞利浦旗下高端游戏显示器品牌evnia全程鼎力支持,与万千玩家一同见证这场电竞盛典的每一个精彩时刻! …

    2026年9月4日 用户投稿
    000
  • 微软确认 Win11 24H2 系统移除“写字板”应用

    微软已明确表示,从 windows 11 vision 24h2 和 windows server 2025 起,后续系统更新将不再包含“写字板”(wordpad)这一经典应用。这款软件最早出现在 1995 年的 windows 95 系统中,并一直作为 windows 的默认程序之一,为用户提供基…

    2026年9月4日
    000
  • 影石创新正式登陆科创板,开盘大涨285%,总市值超700亿元

    6月11日,a股迎来“智能影像第一股”——影石创新科技股份有限公司(简称“影石创新”,股票代码:688775.sh)正式在上海证券交易所科创板挂牌上市。公司上市首日开盘价为182元/股,较发行价上涨285%,总市值突破700亿元,迅速成为科创板的明星企业之一。此次影石创新成功募资19.38亿元,位居…

    2026年9月4日
    000
  • 如何备份Yandex浏览器 俄罗斯引擎Yandex书签与数据方法

    备份yandex浏览器书签和数据最简单的方法是导出书签为html文件,可通过书签管理器导出并在任意主流浏览器导入;2. 完整数据备份需关闭浏览器后复制用户数据目录(路径为c:users用户名appdatalocalyandexyandexbrowseruser data)到安全位置,恢复时覆盖原文件…

    2026年9月4日
    000
  • 世界级人工智能科学家许主洪加盟阿里巴巴,担任副总裁

    世界级人工智能科学家许主洪加盟阿里巴巴,担任副总裁世界级人工智能科学家许主洪加盟阿里巴巴,担任副总裁世界级人工智能科学家许主洪加盟阿里巴巴,担任副总裁世界级人工智能科学家许主洪加盟阿里巴巴,担任副总裁

    凤凰网科技讯 2月6日,凤凰网科技获悉,全球顶尖人工智能科学家许主洪教授(steven hoi)正式加入阿里巴巴,出任阿里集团副总裁,负责ai to c业务的多模态基础模型及agents相关基础研究与应用解决方案。近期,阿里ai to c业务大动作频频,引入世界级顶尖人才,组建顶级ai算法研究和工程…

    2026年9月4日 用户投稿
    100
  • 文远知行发布全新无人物流车Robovan W5

    文远知行发布全新一代无人物流车robovan w5,旨在解决物流行业痛点。这款l4级无人驾驶物流车,专为城市开放道路设计,具备全场景适应能力、长续航和高载重等优势,为快递、城市配送和点对点物流提供高效的无人配送方案。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSe…

    2026年9月4日
    000
  • 雷军:和同事讨论提升小米汽车产能新方法

    小米汽车产能再升级!雷军亲临工厂督战提产 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 2月7日,小米集团董事长兼CEO雷军在其微博发布消息,他正在小米汽车工厂的研发中心,实地考察生产情况。雷军表示,将与制造团队深入探讨如何在保证产品质量和…

    2026年9月4日
    000
  • 东风猛士917接入DeepSeek-R1模型 4月前通过OTA推送 

    东风猛士917智能座舱即将搭载deepseek-r1模型,引领汽车行业ai智能化新潮流!据悉,猛士科技将于2025年4月北京车展前,通过ota升级,率先在猛士917和蛟龙战甲等车型上推出这项技术。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜…

    2026年9月4日
    200
  • 最新一期安兔兔车机版性能榜单发布 小米SU7位列第五    

    2月8日,安兔兔车机版性能榜单新鲜出炉!骁龙8295处理器车型占据榜单前列,形成第一梯队;龙鹰一号和骁龙8155处理器车型则构成第二梯队。高通在高端智能座舱领域持续领跑。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 榜单数据显示,魏牌全新…

    2026年9月4日
    100
  • 贝斯兰获数千万元天使轮融资,系半导体湿法领域核心组件供应商

    青岛贝斯兰半导体科技有限公司近日完成数千万元天使轮融资,由初芯基金领投,多家战略方跟投。此轮融资将用于团队扩张和青岛厂区建设,进一步提升公司为国内外客户提供尖端产品、优质服务和专业技术支持的能力。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜…

    2026年9月4日
    200
  • 炉石传说标准野猪快攻瞎卡组怎么搭配 炉石传说标准野猪快攻瞎代码分享6月

    炉石传说现已正式上线32.4.2版本补丁,那么在这个新版本中有哪些强势卡组值得尝试呢?本次推荐的是一套标准模式下的野猪快攻瞎卡组,强度表现相当不错,有兴趣的玩家千万不要错过! 以下是2025年6月适用于标准模式的野猪快攻瞎卡组代码: AAECAea5AwaYoASongbEuAax4QbM4QbDg…

    2026年9月4日
    000
  • 纯电轿车续航榜公布:最高905km!上榜门槛达610km

    2025年1月纯电轿车续航里程排行榜新鲜出炉,各品牌续航实力强劲!本文将为您盘点不同价位段的续航冠军及热门车型。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 30万以上价位: 享界S9以816公里超长续航拔得头筹,电池容量高达100度!奔…

    2026年9月4日
    000
  • 东风纳米接入DeepSeek大模型,加速用户智能化体验革新

    东风纳米宣布接入deepseek大语言模型,赋能智能座舱!近日,东风纳米官方发布消息,已完成deepseek全系列大语言模型的集成,并计划将其应用于旗下车型。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ DeepSeek大模型凭借其强大的…

    2026年9月4日
    100
  • 2025年1月全国乘用车批发204.8万辆 新能源90万辆

      根据乘联会秘书长崔东树发布的数据,2025年1月1日至31日,全国乘用车厂家批发量为204.8万辆,尽管同比去年下降了3%,但与上月相比的降幅也达到了33%。同样,市场零售量为185.3万辆,同比去年下降了9%,较上月同期下降了30%。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费…

    2026年9月3日
    000
  • 上汽奥迪1月销量2800辆 同比增长38.1% A7L表现抢眼

    上汽奥迪2月销量增长38.1%,a7l同比增长超112%! ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 上汽奥迪公布了2月份的销量数据,总销量达2800辆,同比增长38.1%。其中,A7L车型表现尤为亮眼,同比增长高达112.4%。 据悉…

    2026年9月3日
    100
  • 原神塔利雅是几星 角色塔利雅星级介绍

    原神中的塔利雅是一名四星水元素单手剑角色,其定位为辅助型角色,能够为队伍提供护盾、攻击速度以及移动速度的增益效果。该角色将于2025年6月18日随着5.7版本的上线正式登场,位于上半部分的卡池中,与限定五星冰元素角色丝柯克以及复刻五星冰元素角色申鹤一同出现在up池中,玩家在该期间获取她的概率将大幅提…

    2026年9月3日
    100

发表回复

登录后才能评论
关注微信