问:ES6的hasOwn,hasOwnProperty和in——对象属性检测判断有哪些方法?
七娃博客
55人阅读
说到javascript对象是否含有某个属性,很多人都会用到hasOwnProperty原型方法,如下:
if(Object.prototype.hasOwnProperty.call(obj,"name")){ console.log(222) }
很多源码里也这样写,代码严谨,出错率低,避免没有某个属性js抛出undefined的异常。
然而,ES2022扩展了ES6的对象一些 方法,其中就包含了对象属性检测的方法hasOwn(),这个方法比原型方法简单多了,用法如下:
if(Object.hasOwn(obj,"name")){ console.log(333) }
效果如同hasOwnProperty那么,程序都返回了true,执行了日志打印函数。hasOwn和hasOwnProperty一样,检测到属性就返回true,否则返回false。
说到对象属性检测,不得不提到另外一个关键字"in",效果也可以满足属性检测的功能,用法如下:
if('name' in obj){ console.log(444) }
关键字in也是ES2022新增的,精简的写法让js开发更加快速,可读性也变强了,你还知道哪些属性检测的方法?可以留言一起学习!
主题开源不易,支持一下作者吧!
使用支付宝打赏
使用微信打赏
评论 | 0 条评论
登录之后才可留言,前往登录