JS判断对象中是否存在某个属性

JS判断对象中是否存在某个属性

方式1:布尔判定

js 复制代码
var obj = {}

if (obj.a) {
  console.log("存在")
} else {
  console.log("不存在") // 输出此结果
}

表示"a"的值是否满足布尔判定

  • 注意:
    当"属性a"的值是undefined、null、 " "、0时,同样视为不存在
  • 原因:

方式2:使用undefined

属性a的值与"undefined"对比

方式3:使用Object.keys()

拿到这个对象中所有的属性名形成的数组,看里边是否包含这个属性,并且必须是对象中自有的可枚举属性

  • 自有属性
js 复制代码
var obj = { a: 1 }   或者   obj.a = 1
  • 非自有属性
js 复制代码
var obj = {}
function A() {
  A.prototype.a = 1
}
obj = new A()  // 属性a不在它自身上,而是在它的原型链上
console.log(Object.keys(obj)) // 输出: Array []
  • 可枚举属性:
    可以通过Object.keys()或者for in循环找到它就是可枚举属性

修改上面的例子,把属性a变成不可枚举属性:

方式4:使用 hasOwnProperty()

判断属性是否是对象自有的属性,不要求属性是否可枚举

方式5:使用"in"

可以是非自有属性、不可枚举、原型上都行

上述方法没有对错之分,具体情况具体分析

总结:

判断一个对象中是否存在某个属性的方式多种多样,最主要是依据什么去界定这个属性是否存在

相关推荐
Beginner x_u2 分钟前
从 Promise 到 async/await:一次把 JavaScript 异步模型讲透
javascript·ajax·promise·异步·async await
韩曙亮17 分钟前
【Web APIs】移动端轮播图案例 ( 轮播图自动播放 | 设置无缝衔接滑动 | 手指滑动轮播图 | 完整代码示例 )
前端·javascript·css·html·轮播图·移动端·web apis
2501_9462447824 分钟前
Flutter & OpenHarmony OA系统图片预览组件开发指南
android·javascript·flutter
xu_duo_i1 小时前
vue3+element-plus图片上传,前端压缩(纯函数,无插件)
前端·javascript·vue.js
POLITE31 小时前
Leetcode 240. 搜索二维矩阵 II JavaScript (Day 9)
javascript·leetcode·矩阵
bigHead-1 小时前
前端双屏显示与通信
开发语言·前端·javascript
PieroPc1 小时前
Html +css+js 写的一个小商城系统(POS系统)
javascript·css·html
一颗小青松1 小时前
vue 腾讯地图经纬度转高德地图经纬度
前端·javascript·vue.js
怕浪猫10 小时前
第一章 JSX 增强特性与函数组件入门
前端·javascript·react.js