说到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开发更加快速,可读性也变强了,你还知道哪些属性检测的方法?可以留言一起学习!