js判断对象是否存在某个键值

方法一 in 操作符

使用方法:'XXX' in obj(对象),结果返回布尔值 true / false

javascript 复制代码
const obj = { name:'张三', sex:'男' }

'name' in obj  // true
'test' in obj  // false

方法二 hasOwnProperty方法

**使用方法:obj.hasOwnProperty(XXX),结果返回布尔值 true / false(**不包括原型链上的属性 )

javascript 复制代码
const obj = { name:'张三', sex:'男' }

obj.hasOwnProperty('name')  // true
obj.hasOwnProperty('test')  // false

方法三 直接判断

使用方法:obj.xxx !== undefined,结果返回布尔值 true / false

javascript 复制代码
const obj = { name:'张三', sex:'男' }

obj.name !== undefined // true
obj.test !== undefined // false

方法四 Object.keys()

使用方法:使用 Object.keys() 方法将对象转换为 数组格式(该方法只会拿到对象的键值key)

javascript 复制代码
const obj = { name:'张三', sex:'男' }
let newArr = Object.keys(obj)  // ['name', 'sex']

newArr.includes('name') // true
newArr.includes('test') // false
 

方法五 Reflect.has()

使用方法:Reflect.has(obj(对象), keyName(XXX)),结果返回布尔值 true / false

javascript 复制代码
const obj = { name:'张三', sex:'男' }

Reflect.has(obj, 'name')  // true
Reflect.has(obj, 'test')  // false
相关推荐
mCell5 小时前
GSAP ScrollTrigger 详解
前端·javascript·动效
gnip5 小时前
Node.js 子进程:child_process
前端·javascript
excel8 小时前
为什么在 Three.js 中平面能产生“起伏效果”?
前端
excel9 小时前
Node.js 断言与测试框架示例对比
前端
天蓝色的鱼鱼11 小时前
前端开发者的组件设计之痛:为什么我的组件总是难以维护?
前端·react.js
codingandsleeping11 小时前
使用orval自动拉取swagger文档并生成ts接口
前端·javascript
石金龙12 小时前
[译] Composition in CSS
前端·css
白水清风12 小时前
微前端学习记录(qiankun、wujie、micro-app)
前端·javascript·前端工程化
Ticnix12 小时前
函数封装实现Echarts多表渲染/叠加渲染
前端·echarts
用户221520442780012 小时前
new、原型和原型链浅析
前端·javascript