jsk判断对象中是否有某值

本文介绍了JavaScript中用于检测对象属性的方法,包括hasOwnProperty()和in运算符。hasOwnProperty()仅检查对象自身的属性,不包含原型链上的属性,而in运算符则会返回对象及其原型链上是否存在指定属性。了解这些概念对于深入理解JavaScript对象和原型至关重要。
摘要由CSDN通过智能技术生成

 hasOwnProperty()

 let arr={name:'1',id:'2'}
 arr.__proto__.sex='女'
 let b=arr.hasOwnProperty('sex')
 console.log(b)   //返回true  false

只有自身存在该属性时,才会返回true,如果是原型链上的值会返回false。

如果报Do not access Object.prototype method 'hasOwnProperty' from target object,直接使用(文章

Object.prototype.hasOwnProperty.call(obj, 'key')

Object.prototype.hasOwnProperty.call(arr, 'name')

in 运算符

let arr={name:'1',id:'2'}
arr.__proto__.sex='女'
'name' in arr   //true
'sex'  in  arr   //true
'address' in  arr  //false

无法区分自身和原型链上的属性,当原型链上有需要的属性时,会直接显示true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值