首頁 >web前端 >js教程 >js判斷有無屬性的方法

js判斷有無屬性的方法

小云云
小云云原創
2018-03-20 17:19:101371瀏覽

本文主要跟大家分享js判斷有無屬性的方法,希望能幫助大家。

存取物件屬性

1.使用in關鍵字

#該方法可以判斷物件的自有屬性和繼承來的屬性是否存在。

var o={x:1};  
"x" in o; //true,自有属性存在  "y" in o;
 //false  "toString" in o; 
 //true,是一个继承属性

2.使用物件的hasOwnProperty()方法  

該方法只能判斷自有屬性是否存在,而對於繼承屬性會回傳false。

var o={x:1};  
o.hasOwnProperty("x");   
 //true,自有属性中有x  o.hasOwnProperty("y");  
   //false,自有属性中不存在y  o.hasOwnProperty("toString");
    //false,这是一个继承属性,但不是自有属性

3.用undefined判斷  

#自有屬性和繼承屬性皆可判斷。

var o={x:1};  
o.x!==undefined;
 //true  o.y!==undefined;
  //false  o.toString!==undefined 
  //true

該方法有一個問題,如果屬性的值就是undefined的話,該方法不能傳回想要的結果,如下。

var o={x:undefined};  
o.x!==undefined; 
//false,属性存在,但值是undefined  o.y!==undefined; 
//false  o.toString!==undefined //true

4.在條件語句中直接判斷

var o={};  
if(o.x) o.x+=1; 
//如果x是undefine,null,false," ",0或NaN,它将保持不变

               

存取物件屬性

1.使用使用物件屬性

#1.使用物件屬性關鍵字

此方法可以判斷物件的自有屬性和繼承來的屬性是否存在。

var o={x:1};  
"x" in o; //true,自有属性存在  "y" in o;
 //false  "toString" in o; 
 //true,是一个继承属性

2.使用物件的hasOwnProperty()方法

 該方法只能判斷自有屬性是否存在,而對於繼承屬性會回傳false。

var o={x:1};  
o.hasOwnProperty("x");  
  //true,自有属性中有x  o.hasOwnProperty("y");   
   //false,自有属性中不存在y  o.hasOwnProperty("toString");
    //false,这是一个继承属性,但不是自有属性

3.用undefined判斷

 

#自有屬性和繼承屬性皆可判斷。

var o={x:1};  
o.x!==undefined; 
//true  o.y!==undefined; 
//false  o.toString!==undefined
 //true
該方法有一個問題,如果屬性的值就是undefined的話,該方法不能傳回想要的結果,如下。

var o={x:undefined};  
o.x!==undefined; 
//false,属性存在,但值是undefined  o.y!==undefined; 
//false  o.toString!==undefined //true

4.在條件語句中直接判斷

var o={};  
if(o.x) o.x+=1;
//如果x是undefine,null,false," ",0或NaN,它将保持不变
相關推薦:

學習了解javascript中script的標籤屬性

js動態建立標籤以及設定屬性的方法

######javascript物件有哪三個屬性######

以上是js判斷有無屬性的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn