js判断对象是否存在某个属性的办法

这篇具有很好参考价值的文章主要介绍了js判断对象是否存在某个属性的办法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在 JavaScript 开发中,判断一个对象是否存某个属性在是非常基础的操作,也是开发者经常需要处理的问题之一。然而,繁琐的代码可能会让我们感到疲惫不堪,因此这里将介绍几种 JavaScript 小技巧,帮助你更高效地判断对象属性的存在性,提高代码效率⏱。

👋 技巧一: 使用 hasOwnProperty 方法

hasOwnProperty 是 JavaScript 中的内置方法,用于检测一个对象是否拥有特定的自身属性。如果包含,则返回 true,否则返回 false。注意,这里的“自身属性”指的是挂在对象自身上的属性,而不包括原型链上的属性。

const person = {
  name: 'Tom',
  age: 18
};

console.log(person.hasOwnProperty('name')); // true
console.log(person.hasOwnProperty('gender')); // false
console.log(person.hasOwnProperty('toString')); // false   对象原型上有 toString 属性

这种方式可以判断一个属性是否挂载在对象自身上,但无法判断其是否存在于原型链上。

👋 技巧二:使用 in 操作符

使用 in 操作符可以判断一个对象是否包含某个属性,如果该属性存在于对象自身或其原型链上,则返回 true,否则返回 false。

const person = {
  name: 'Tom',
  age: 18
};

console.log('name' in person); // true
console.log('gender' in person); // false
console.log('toString' in person); // true

这种方式可以判断一个属性是否存在于对象自身或其原型链上,但无法区分属性是挂载在对象自身还是原型链上。

👋 技巧三:使用 Reflect.has 方法

Reflect.has 是 ES6 中引入的新方法,用于检测一个对象是否包含某个属性,与 in 操作符类似,可以同时判断一个属性是否存在于对象自身或原型链上。

const person = {
  name: 'Tom',
  age: 18
};

console.log(Reflect.has(person, 'name')); // true
console.log(Reflect.has(person, 'gender')); // false
console.log(Reflect.has(obj, 'toString')); // true

上面几种方法都可以满足我们日常开发中对对象属性存在与否的判断,如果要精确判断属性是在对象自身还是原型链上可以这样做

const person = {
  name: 'Tom',
  age: 18
};

console.log(Object.getPrototypeOf(person).hasOwnProperty('name')); // false
console.log(Object.getPrototypeOf(person).hasOwnProperty('toString')); // true

简单总结

其实实现对属性的判断还有很多方法,有些方法可能在性能上有损耗、或者判断存在缺陷这里接不一一列举,目前这3个方法是我日常开发中使用比较多的,推荐给大家。
天气热请你吃🍉🍉🍉文章来源地址https://www.toymoban.com/news/detail-696964.html

到了这里,关于js判断对象是否存在某个属性的办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • js中判断一个对象是否存在

    js中判断一个对象是否存在

    一、Boolean()方法 用Boolean()方法可以将Js中的任意数据类型转为布尔值: 二、用于判断xx是否存在 js一般会自动执行Boolean()方法,我们可以借此判断某个对象在js当前的执行环境中知否存在。如: 又如,可以判断当前环境下某个对象是否存在。 在为一个元素绑定了某个事件后,

    2024年02月13日
    浏览(49)
  • js判断对象数组中的元素是否存在重复

     1、使用  Array.some()  方法和自定义比较函数: 使用  Array.some()  方法遍历数组,对每个元素执行自定义的比较函数。比较函数使用  Array.findIndex()  方法来查找与当前元素相等且索引不同的元素,如果找到则表示存在重复元素。 2、使用  Set  数据结构: 使用  Set  数据结

    2024年02月13日
    浏览(48)
  • js之删除对象属性的三种方法 & 判断对象中是否有某一属性的四种方法

    js之删除对象属性的三种方法 判断对象中是否有某一属性的四种方法 示例 1、基础版 2、进阶版 1、删除一个对象上的属性 1.1、delete 语法 delete 对象.属性名 1.2、es6之解构赋值 1.3、es6之反射 语法 Reflect.deleteProperty(对象,属性名) 2、判断对象中是否有某一属性的四种方法 2.1、

    2024年02月13日
    浏览(13)
  • 微信小程序如何判断对象是否为空、判断值是否存在

    微信小程序如何判断对象是否为空、判断值是否存在

    在 js 文件中需要对 data 里一些的对象进行判断是否为空 比如这里我要在页面加载时判断 data 中的 record 是否为空: 在 onload() 方法中使用 Object.key().length0 来判断: Object.keys()方法:将给定对象的所有可枚举属性变成一个字符串数组 解释:将需要判断的对象转换为一个字符

    2024年02月11日
    浏览(88)
  • PHP开发日志 ━━ 不同方法判断某个数组中是否存在指定的键名,测试哪种方法效率高

    PHP开发日志 ━━ 不同方法判断某个数组中是否存在指定的键名,测试哪种方法效率高

    我们可以用 isset($arr[\\\'a\\\']) 或者 array_key_exists(\\\'a\\\', $arr) 来判断 \\\'a\\\' 键名是否存在与 $arr 数组。 那么这两种方式哪个运行速度快呢? 不多废话了,现在我们写一段代码来测试一下: 结论是 isset() 更胜一筹。

    2024年02月02日
    浏览(49)
  • JS中判断某个字符串、数组等是否包含某个值

    方法一: indexOf()   (推荐)   indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1。 方法二:match()   match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。 方法三: search()   search() 方法

    2024年02月03日
    浏览(49)
  • 微信小程序判断对象是否存在或为空

    微信小程序判断对象是否存在或为空

    要取节点data.result.image的值,正常情况下有该节点如下图所示  但出错的情况下该节点不存在,直接取会出错 所以添加节点是否存在和是否为空的判断,存在且不为空时才显示  测试发现通过typeof判断节点是否存在时要一层层判断,如果data.result已经不存在,直接判断data.re

    2024年02月04日
    浏览(13)
  • JavaScript判断数组对象是否含有某个值的方法(6种)

    JavaScript判断数组对象是否含有某个值的方法(6种)

    文章内容 文章链接 vue3 antd table表格的增删改查(一) input输入框根据搜索【后台管理系统纯前端filter过滤】 https://blog.csdn.net/XSL_HR/article/details/128072584?spm=1001.2014.3001.5501 vue3 antd table表格的增删改查(二) input输入框根据搜索【后台管理系统 请求后端接口 前后端

    2024年02月06日
    浏览(18)
  • JS判断Map中是否包含某个key

    JS判断Map中是否包含某个key

    obj.hasOwnProperty(key) 输出如下: 完美😏。

    2024年02月14日
    浏览(16)
  • 前端基础面试题:如何判断对象是否具有某属性?遍历数组的方法有哪些?

    前端基础面试题:如何判断对象是否具有某属性?遍历数组的方法有哪些?

    一、如何判断对象具有某属性? 如: let obj={name:\\\'zhangsan\\\',age:21} 有以下方法 ( property 为属性名的变量,实际上是key,键名): 1. property in obj 效果如图: in 运算符 2. Reflect.has(obj, property) 效果如图: 关于 Reflect: ① 它是JS的一个内置对象,无构造函数,可以用它遍历对象的key,如

    2023年04月08日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包