真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

es6如何判斷對象有沒有某屬性

這篇“es6如何判斷對象有沒有某屬性”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“es6如何判斷對象有沒有某屬性”文章吧。

公司主營業(yè)務(wù):成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出豐臺免費(fèi)做網(wǎng)站回饋大家。

判斷方法:1、用“對象.屬性名 !== undefined”語句判斷,如果返回值為true,則對象上有某屬性;2、用“'屬性名' in 對象”語句,如果返回true則有某屬性;3、用“對象.hasOwnProperty('屬性名')”語句。

本教程操作環(huán)境:windows7系統(tǒng)、ECMAScript 6版、Dell G3電腦。

es6判斷對象有沒有某屬性

方法1:點(diǎn)( . )+ undefined判斷

我們知道,通過點(diǎn)或者方括號可以獲取對象的屬性值,如果對象上不存在該屬性,則會返回 undefined。這種方式可以判斷指定對象的自有屬性和繼承屬性,如果對象自身沒有檢測的屬性,而原型鏈上有該屬性,則會返回原型鏈上的屬性值。

// 創(chuàng)建對象
let obj = {
    name: 'Scarlett',
    age: 37
}
console.log(obj.name !== undefined)  // true 自身屬性存在
console.log(obj.gender !== undefined)  // false gender屬性不存在

// 在原型上添加一個(gè)可枚舉屬性
Object.prototype.nationality = 'America'

// 在obj對象上添加一個(gè)不可枚舉屬性
Object.defineProperty(obj, 'occupation', {
    value: 'actress',
    enumerable: false
})

簡單的,我們可以通過 Object.propertyName !== undefined 的返回值來判斷對象上是否含有某屬性。但有一種情況,即:屬性名存在,屬性值為 undefined 的情況下,就不能返回想要的結(jié)果。

// 新增一個(gè)值為undefined的屬性
obj.birthday = undefined

console.log(obj.birthday !== undefined)  // false

那么,我們可以使用 in 運(yùn)算符來解決這個(gè)問題。

方法2:in 運(yùn)算符

該方法可以判斷指定對象的自有屬性和繼承屬性中是否存在某屬性,如果存在則返回 true。 in 運(yùn)算符也能檢測到原型鏈上的屬性。

'name' in obj  // true 自身屬性存在
'occupation' in obj  // true 不可枚舉屬性存在
'nationality' in obj  // true 繼承屬性
'birthday' in obj  // true 值為undefined的屬性

in 運(yùn)算符的語法也很簡單,作用范圍和效果與點(diǎn)( . )或方括號( [ ] )相同,不同的是值為 undefined 的屬性也可以正常判斷。

  • 以上這兩種方法的局限性就是:不能準(zhǔn)確區(qū)分是自有屬性還是原型鏈上的屬性。如果檢測自身屬性是否存在時(shí),就需要 Object.hasOwnProperty() 了。

方法3:Object.hasOwnProperty()

Object.hasOwnProperty() 用來判斷指定對象自身是否含有某個(gè)屬性(非繼承),返回布爾值。

obj.hasOwnProperty('name')  // true 自身屬性
obj.hasOwnProperty('occupation')  // true 不可枚舉屬性
obj.hasOwnProperty('birthday')  // true
obj.hasOwnProperty('nationality')  // false 原型鏈上繼承的屬性

該方法會過濾掉那些繼承來的屬性,當(dāng)檢測屬性為自有屬性時(shí)返回 true。

以上就是關(guān)于“es6如何判斷對象有沒有某屬性”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


名稱欄目:es6如何判斷對象有沒有某屬性
本文網(wǎng)址:http://weahome.cn/article/gdoeij.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部