javascript檢測(cè)對(duì)象中是否存在某個(gè)屬性判斷方法小結(jié)
更新時(shí)間:2013年05月19日 16:47:44 作者:
檢測(cè)對(duì)象中屬性的存在與否可以通過(guò)以下幾種方法來(lái)判斷:使用in關(guān)鍵字、使用對(duì)象的hasOwnProperty()方法、用undefined判斷、在條件語(yǔ)句中直接判斷,感興趣的朋友可以了解下哈
檢測(cè)對(duì)象中屬性的存在與否可以通過(guò)幾種方法來(lái)判斷。
1.使用in關(guān)鍵字
該方法可以判斷對(duì)象的自有屬性和繼承來(lái)的屬性是否存在。
var o={x:1};
"x" in o; //true,自有屬性存在
"y" in o; //false
"toString" in o; //true,是一個(gè)繼承屬性
2.使用對(duì)象的hasOwnProperty()方法
該方法只能判斷自有屬性是否存在,對(duì)于繼承屬性會(huì)返回false。
var o={x:1};
o.hasOwnProperty("x"); //true,自有屬性中有x
o.hasOwnProperty("y"); //false,自有屬性中不存在y
o.hasOwnProperty("toString"); //false,這是一個(gè)繼承屬性,但不是自有屬性
3.用undefined判斷
自有屬性和繼承屬性均可判斷。
var o={x:1};
o.x!==undefined; //true
o.y!==undefined; //false
o.toString!==undefined //true
該方法存在一個(gè)問(wèn)題,如果屬性的值就是undefined的話,該方法不能返回想要的結(jié)果,如下。
var o={x:undefined};
o.x!==undefined; //false,屬性存在,但值是undefined
o.y!==undefined; //false
o.toString!==undefined //true
4.在條件語(yǔ)句中直接判斷
var o={};
if(o.x) o.x+=1; //如果x是undefine,null,false," ",0或NaN,它將保持不變
1.使用in關(guān)鍵字
該方法可以判斷對(duì)象的自有屬性和繼承來(lái)的屬性是否存在。
復(fù)制代碼 代碼如下:
var o={x:1};
"x" in o; //true,自有屬性存在
"y" in o; //false
"toString" in o; //true,是一個(gè)繼承屬性
2.使用對(duì)象的hasOwnProperty()方法
該方法只能判斷自有屬性是否存在,對(duì)于繼承屬性會(huì)返回false。
復(fù)制代碼 代碼如下:
var o={x:1};
o.hasOwnProperty("x"); //true,自有屬性中有x
o.hasOwnProperty("y"); //false,自有屬性中不存在y
o.hasOwnProperty("toString"); //false,這是一個(gè)繼承屬性,但不是自有屬性
3.用undefined判斷
自有屬性和繼承屬性均可判斷。
復(fù)制代碼 代碼如下:
var o={x:1};
o.x!==undefined; //true
o.y!==undefined; //false
o.toString!==undefined //true
該方法存在一個(gè)問(wèn)題,如果屬性的值就是undefined的話,該方法不能返回想要的結(jié)果,如下。
復(fù)制代碼 代碼如下:
var o={x:undefined};
o.x!==undefined; //false,屬性存在,但值是undefined
o.y!==undefined; //false
o.toString!==undefined //true
4.在條件語(yǔ)句中直接判斷
復(fù)制代碼 代碼如下:
var o={};
if(o.x) o.x+=1; //如果x是undefine,null,false," ",0或NaN,它將保持不變
相關(guān)文章
JS實(shí)現(xiàn)動(dòng)態(tài)加載樣式和腳本
在前端開(kāi)發(fā)的過(guò)程中,不可避免的需要根據(jù)前置條件動(dòng)態(tài)加載樣式和腳本文件,本文小編就來(lái)簡(jiǎn)單為大家介紹一下實(shí)現(xiàn)一下動(dòng)態(tài)加載樣式和腳本文件的方法吧2023-09-09js實(shí)現(xiàn)電梯導(dǎo)航效果的示例代碼
這篇文章主要介紹了JavaScript實(shí)現(xiàn)電梯導(dǎo)航效果的相關(guān)知識(shí),文中通過(guò)示例代碼介紹的很詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-12-12JS前端組件設(shè)計(jì)以業(yè)務(wù)為導(dǎo)向?qū)嵺`思考
這篇文章主要為大家介紹了JS前端組件設(shè)計(jì)以業(yè)務(wù)為導(dǎo)向?qū)嵺`思考,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03Javascript createElement和innerHTML增加頁(yè)面元素的性能對(duì)比
Javascript之createElement和innerHTML增加頁(yè)面元素的性能對(duì)比2009-09-09微信小程序云開(kāi)發(fā)(數(shù)據(jù)庫(kù))詳解
使用云開(kāi)發(fā)開(kāi)發(fā)微信小程序、小游戲,無(wú)需搭建服務(wù)器,這篇文章主要為大家詳細(xì)介紹了微信小程序云開(kāi)發(fā)數(shù)據(jù)庫(kù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05微信小程序項(xiàng)目實(shí)踐之驗(yàn)證碼倒計(jì)時(shí)功能
這篇文章主要介紹了微信小程序項(xiàng)目實(shí)踐之驗(yàn)證碼倒計(jì)時(shí)功能,當(dāng)用戶(hù)點(diǎn)擊發(fā)送驗(yàn)證碼按鈕,按鈕背景變色,不可點(diǎn)擊,顯示倒計(jì)時(shí)文字,需要的朋友可以參考下2018-07-07經(jīng)典的解除許多網(wǎng)站無(wú)法復(fù)制文字的絕招
經(jīng)典的解除許多網(wǎng)站無(wú)法復(fù)制文字的絕招...2006-12-12