当前位置: 首页 > news >正文

javaScript Object.hasOwn()的用法

Object.hasOwn()
如果指定的对象自身有指定的属性,则静态方法 Object.hasOwn() 返回 true。如果属性是继承的或者不存在,该方法返回 false。
备注: Object.hasOwn() 旨在取代 Object.prototype.hasOwnProperty()。
**语法:**Object.hasOwn(obj, prop)
参数说明:
obj - 要测试的 JavaScript 实例对象。
prop - 要测试属性的 String 类型的名称或者 Symbol。
返回值: 如果指定的对象自身有指定的属性,则返回 true;否则返回 false。
描述: 如果指定的属性是该对象的直接属性——Object.hasOwn() 方法返回 true,即使属性值是 null 或 undefined。如果属性是继承的或者不存在,该方法返回 false。它不像 in 运算符,这个方法不检查对象的原型链中的指定属性。

例子一:

  let obj1 = {name:"光头强"}let result1 = Object.hasOwn(obj1,"name")let result2 = Object.hasOwn(obj1,"age")console.log(result1)  // 打印结果: trueconsole.log(result2)  // 打印结果: false

例子二:

const example = {};
Object.hasOwn(example, "prop"); // false——目标对象的属性 'prop' 未被定义example.prop = "exists";
Object.hasOwn(example, "prop"); // true——目标对象的属性 'prop' 已被定义example.prop = null;
Object.hasOwn(example, "prop"); // true——目标对象本身的属性存在,值为 nullexample.prop = undefined;
Object.hasOwn(example, "prop"); // true——目标对象本身的属性存在,值为 undefined

也可以检查数组索引是否存在
例子三:

const fruits = ["光头强", "熊大", "熊二", "吉吉国王"];
Object.hasOwn(fruits, 3); // true ('吉吉国王')
Object.hasOwn(fruits, 4); // false——没有定义的

注意:官方说明
建议使用此方法替代 Object.prototype.hasOwnProperty(),因为它适用于使用 Object.create(null) 创建的对象,以及重写了继承的 hasOwnProperty() 方法的对象。尽管可以通过在外部对象上调用 Object.prototype.hasOwnProperty() 解决这些问题,但是 Object.hasOwn() 更加直观。

http://www.lryc.cn/news/336581.html

相关文章:

  • MINI2440 开发板 给他干出来了
  • 上海人工智能实验室的书生·浦语大模型学习笔记(第二期第三课——上篇)
  • 前端小白的学习之路(Vue2 三)
  • ChatGPT 之优势与缺陷
  • python爬虫———post请求方式(第十四天)
  • 51蓝桥杯之DS18B20
  • TiDB 组件 GC 原理及常见问题
  • 【c++】STl-list使用list模拟实现
  • 号卡极团分销管理系统 index.php SQL注入漏洞复现
  • 内核驱动更新
  • 故障诊断 | 一文解决,PLS偏最小二乘法的故障诊断(Matlab)
  • 我为什么选择成为程序员?
  • Open CASCADE学习|统计形状拓扑数量
  • LeetCode 热题 100 题解(二):双指针部分(2)| 滑动窗口部分(1)
  • 常用的深度学习自动标注软件
  • 选择程序员是为什么?
  • 线程池参数如何设置
  • qt环境搭建-镜像源安装Qt Creator(5.15.2)以及配置环境变量
  • SQL Server详细安装使用教程
  • 深度解读C++17中的std::string_view:解锁字符串处理的新境界
  • 汇编基础-----常见命令基本使用
  • 科研学习|可视化——相关性结果的可视化
  • MapReduce过程解析
  • 速看!这8道嵌入式面试题你都会吗?
  • 基于SSM的电影网站(有报告)。Javaee项目。ssm项目。
  • SOCKS代理是如何提高网络性能和兼容性的?
  • 好菜每回味道不同--建造者模式
  • RuoYi-Cloud下载与运行
  • Vue2.x计算属性
  • Vue中使用require.context()自动引入组件和自动生成路由的方法介绍