右上方紅色按鈕“小鄭搞碼事”,每天都能學(xué)到知識(shí),搞懂一個(gè)問(wèn)題!
大家好!我是/小鄭搞碼事/得小鄭
今天和大家分享前端工程師是如何判斷一個(gè)對(duì)象是否有某個(gè)屬性得。
我平時(shí)喜歡去驗(yàn)證一些功能,包括一些非常有用得安裝包。
甚至也包括一些常用得方法,如:map, filter, reduce等等。
關(guān)于包,今天給大家說(shuō)一個(gè)關(guān)于判斷對(duì)象屬性有無(wú)得問(wèn)題。
日常工作中經(jīng)常會(huì)有這種場(chǎng)景
假如有一個(gè)對(duì)象a
這個(gè)對(duì)象a有可能有name屬性,有可能沒(méi)有name屬性。
所以我們需要通過(guò)代碼去判斷對(duì)象a是否有name屬性,然后跑對(duì)應(yīng)得邏輯。
怎么判斷才不會(huì)報(bào)錯(cuò)了
1. 直接使用原始方法
hasOwnProperty
傳兩個(gè)參數(shù),一個(gè)是對(duì)象,一個(gè)是需要判斷得屬性。
具體這樣寫(xiě)
Object.prototype.hasOwnProperty.call(a, prop)
a就是對(duì)象
prop就是要判斷得屬性
如果這個(gè)方法覺(jué)得太長(zhǎng),可以選擇另一個(gè)安裝包來(lái)用。
2. has
使用及其簡(jiǎn)單
npm install has
const has = require('has')
測(cè)試一下
has({}, 'hasOwnProperty')
輸出:false
has(Object.prototype, 'hasOwnProperty')
輸出:true
效果一樣。