js判断一个对象里有没有某个属性

embedded/2024/9/25 15:19:17/

1. 使用in操作符

in操作符可以用来检测属性是否存在于对象或其原型链中。

javascript">const obj = {a: 1, b: 2};  if ('a' in obj) {  console.log('属性a存在于obj中');  
} else {  console.log('属性a不存在于obj中');  
}

2. 使用hasOwnProperty()方法

hasOwnProperty()方法用来检测一个对象自身(不包括原型链)是否含有指定的属性。

javascript">const obj = {a: 1, b: 2};  if (obj.hasOwnProperty('a')) {  console.log('属性a是obj自身的属性');  
} else {  console.log('属性a不是obj自身的属性');  
}

3. 使用Object.keys()includes()

虽然这种方法比较繁琐,但它可以用于判断属性是否存在于对象自身(不包括原型链)中。

javascript">const obj = {a: 1, b: 2};  if (Object.keys(obj).includes('a')) {  console.log('属性a存在于obj中');  
} else {  console.log('属性a不存在于obj中');  
}

4. 使用Object.prototype.propertyIsEnumerable()

这个方法会检查对象自身属性中是否存在指定的属性,并且该属性的值是否可被枚举。这个方法不仅判断属性是否存在,还检查该属性是否可枚举。

javascript">const obj = {a: 1, b: 2};  if (obj.propertyIsEnumerable('a')) {  console.log('属性a存在于obj中,并且是可枚举的');  
} else {  console.log('属性a不存在于obj中,或者不是可枚举的');  
}

注意事项

  • 使用in操作符时,它会检查对象自身及其原型链上是否有该属性。
  • hasOwnProperty()只检查对象自身是否有该属性,不检查原型链
  • Object.keys()会返回一个由对象自身所有可枚举属性键组成的数组,然后通过includes()检查数组是否包含该属性键。
  • propertyIsEnumerable()检查对象自身是否包含该属性,并且该属性是否可枚举

选择哪种方法取决于你的具体需求,比如是否需要检查原型链,以及是否需要检查属性是否可枚举。


http://www.ppmy.cn/embedded/116682.html

相关文章

Android String资源文件中,空格、换行以及特殊字符如何表示

空格&#xff1a; 例&#xff1a;<string name"test">test test</string> 换行&#xff1a;\n 例&#xff1a;<string name"test">test \n test</string> tab&#xff1a;\t …

[redis命令]列表命令

列表操作 命令含义LSET通过索引设置列表元素的值LPUSH将一个或多个值插入到列表头部LPUSHX将一个值插入到已存在的列表头部RPUSH在列表中添加一个或多个值LPOP移出并获取列表的第一个元素RPOP移除并获取列表最后一个元素BLPOP移出并获取列表的第一个元素BRPOP移出并获取列表的…

CSS中的多种关系选择器

后代选择器 选择所有被E元素包含的F元素&#xff0c;中间用空格隔开。 例&#xff1b; <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title…

【Python】Windows下安装使用FFmpeg

FFmpeg是一套可以用来记录、转换数字音频、视频&#xff0c;并能将其转化为流的开源计算机程序。之前为了MP3转wav&#xff0c;需要pip安装并import AudioSegment&#xff0c;但是会报错&#xff1a;FileNotFoundError: [WinError 2] 系统找不到指定的文件。 因为FFmpeg需要另…

运维加分技能,完整学习手册值得收藏

在运维领域掌握一项编程技能是打怪升级、升职加薪的重要条件&#xff0c;而python往往会成为我们选择的热门技能。在实际工作中&#xff0c;我们经常会使用PythonDjango的框架来实现一些Restful接口服务&#xff0c;或者用其来编写运维平台等&#xff0c;这时Django将变得极为重…

qt--压缩图片的大小

该函数 是输入图片的字节流 然后再内部转换后输出文件的字节流 头文件部分 /*!* brief compressImage* param format 图片的压缩格式* param imageByteArray 源图像字节流* param fileSize 压缩指定的文件大小 默认180kb* param limitHeight 限制图片的高度* return QBy…

加速AI数据应用,肯睿Cloudera推出六款全新机器学习项目加速器AMPs

肯睿Cloudera大中华区技术总监刘隶放表示&#xff1a;“随着中国企业对人工智能的需求日益增长&#xff0c;如何快速、安全地将AI技术落地成为企业的核心诉求。Cloudera全新推出的AMPs不仅为企业提供了可一键部署的AI解决方案&#xff0c;更通过开源的方式缩短企业部署时间&…

Angular面试题五

一、请解释Angular中的管道是什么&#xff0c;并列举几个内置的管道。 Angular中的管道&#xff08;Pipe&#xff09;是一种强大的工具&#xff0c;用于在Angular模板中处理和转换数据&#xff0c;并将其呈现给用户。管道可以将输入数据&#xff08;如字符串、数字、日期等&…