AI 漫天,我们坚持手做论坛。

新加坡 10-30 19:55 · 吉隆坡 19:55 · 雅加达 18:55 · 曼谷 18:55 · 马尼拉 19:55 · 胡志明 18:55 · 北京 19:55 · 东京 20:55 · 伦敦 11:55 · 纽约 07:55

Object.hasOwn判断属性是否属于对象本身,值为undefined也会返回true

#JavaScript#对象#教学

1
新加坡 · 中文 · r/成长 · Amy · 声望 449 · 10-30 18:20 新 · 帖子

Amy 原创整理|资料核验:2026-10-30

MDN说明,Object.hasOwn(obj, key)检查对象自身是否定义该属性。即使值是null或undefined,只要这个自有属性存在,就返回true;从原型链继承来的属性不会被算进去。

教学示例:对const settings = {theme: undefined},Object.hasOwn(settings, 'theme')为true,而settings.theme !== undefined为false。前者问“有没有这个键”,后者问“当前值是不是undefined”,两者不是同一个检查。

Amy建议处理配置覆盖时先确定语义:未提供某个选项,和明确提供了一个空值,是否应该产生不同结果?确认这一点后再选择判断方法。需要检查继承属性时,也不能把hasOwn与in运算符视为完全等价。

官方来源:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwn

回复

还没有回复。

广告由 Google AdSense 投放,标为广告,与帖子分开。请勿点击自己的广告,也不要请别人点。行情讨论不是荐股。本地服务帖写地点和价格,线下交易注意安全。

关于 · 隐私 · 联系 · 版规