国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JavaScript 判斷對(duì)象中是否有某屬性的常用方法

2024-05-06 15:33:26
字體:
供稿:網(wǎng)友

判斷對(duì)象中是否有某屬性的常見方式總結(jié),不同的場(chǎng)景要使用不同的方式。

一、點(diǎn)( . )或者方括號(hào)( [ ] )

  通過點(diǎn)或者方括號(hào)可以獲取對(duì)象的屬性值,如果對(duì)象上不存在該屬性,則會(huì)返回undefined。當(dāng)然,這里的“不存在”指的是對(duì)象自身和原型鏈上都不存在,如果原型鏈有該屬性,則會(huì)返回原型鏈上的屬性值。

// 創(chuàng)建對(duì)象let test = {name : 'lei'}// 獲取對(duì)象的自身的屬性test.name   //"lei"test["name"]   //"lei"http:// 獲取不存在的屬性test.age    //undefined// 獲取原型上的屬性test["toString"]  //toString() { [native code] }// 新增一個(gè)值為undefined的屬性test.un = undefinedtest.un    //undefined 不能用在屬性值存在,但可能為 undefined的場(chǎng)景

  所以,我們可以根據(jù) Obj.x !== undefined 的返回值 來判斷Obj是否有x屬性。

  這種方式很簡單方便,局限性就是:不能用在x的屬性值存在,但可能為 undefined的場(chǎng)景。 in運(yùn)算符可以解決這個(gè)問題

二、 in 運(yùn)算符

  MDN 上對(duì)in運(yùn)算符的介紹:如果指定的屬性在指定的對(duì)象或其原型鏈中,則in 運(yùn)算符返回true。

'name' in test  //true'un' in test    //true'toString' in test //true'age' in test   //false

  示例中可以看出,值為undefined的屬性也可正常判斷。

  這種方式的局限性就是無法區(qū)分自身和原型鏈上的屬性,在只需要判斷自身屬性是否存在時(shí),這種方式就不適用了。這時(shí)需要hasOwnProperty()

 三、hasOwnProperty()

test.hasOwnProperty('name')  //true 自身屬性test.hasOwnProperty('age')   //false 不存在test.hasOwnProperty('toString') //false 原型鏈上屬性

  可以看到,只有自身存在該屬性時(shí),才會(huì)返回true。適用于只判斷自身屬性的場(chǎng)景。

總結(jié)

  三種方式各有優(yōu)缺點(diǎn),不同的場(chǎng)景使用不同的方式,有時(shí)還需要結(jié)合使用,比如遍歷自身屬性的時(shí)候,就會(huì)把 for ··· in  ···和 hasOwnProperty()結(jié)合使用。

以上所述是小編給大家介紹的JavaScript 判斷對(duì)象中是否有某屬性的常用方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)錯(cuò)新站長站網(wǎng)站的支持!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 桐梓县| 彩票| 淄博市| 德惠市| 鄯善县| 保定市| 阿尔山市| 新津县| 湖南省| 大庆市| 环江| 满洲里市| 上蔡县| 瑞丽市| 攀枝花市| 三门县| 镶黄旗| 双辽市| 宕昌县| 永胜县| 汝城县| 望奎县| 达日县| 阳泉市| 兰考县| 寻甸| 鹿泉市| 株洲县| 曲靖市| 喀喇沁旗| 宜黄县| 凤凰县| 同江市| 囊谦县| 龙川县| 铜山县| 沙坪坝区| 张家界市| 武安市| 扬中市| 海盐县|