大家好!我是/小郑搞码事/的小郑
今天和大家分享前端工程师是如何判断一个对象是否有某个属性的。
我平时喜欢去验证一些功能,包括一些非常有用的安装包。
甚至也包括一些常用的方法,如:map, filter, reduce等等。
关于包,今天给大家说一个关于判断对象属性有无的问题。
日常工作中经常会有这种场景
假如有一个对象a
这个对象a有可能有name属性,有可能没有name属性。
所以我们需要通过代码去判断对象a是否有name属性,然后跑对应的逻辑。
怎么判断才不会报错了
1. 直接使用原始方法
hasOwnProperty
传两个参数,一个是对象,一个是需要判断的属性。
具体这样写
Object.prototype.hasOwnProperty.call(a, prop)
a就是对象
prop就是要判断的属性
如果这个方法觉得太长,可以选择另一个安装包来用。
2. has
使用及其简单
npm install has
const has = require('has')
测试一下
has({}, 'hasOwnProperty')
输出:false
has(Object.prototype, 'hasOwnProperty')
输出:true
效果一样。