javascript如何判斷物件直接量中是否含有指定屬性

antzone發表於2017-03-21

很多文章上說是json格式物件的欄位,其實就是物件直接量的屬性,下面就通過例項程式碼介紹一下如何判斷物件直接量是否含有指定的屬性,實現的方法有多種,下面進行一下簡單介紹:

實現方法一:

[JavaScript] 純文字檢視 複製程式碼
var obj={
  webName:"螞蟻部落",
  age:3
}
if(obj["webName"]!=undefined){
  console.log("屬性存在");
}
if(obj["address"]==undefined){
  console.log("屬性不存在");
}

以上程式碼實現了我們的要求,可以判斷物件中是否具有指定屬性。但是這個方法並不完美,看下面程式碼:

[JavaScript] 純文字檢視 複製程式碼
var obj={
  webName:"螞蟻部落",
  age:3,
  address:undefined
}
if(obj["webName"]!=undefined){
  console.log("屬性存在");
}
if(obj["address"]==undefined){
  console.log("屬性不存在");
}

如果恰巧屬性值為undefined的話,那麼這個判斷就不太靈光了。

實現方法二:

[JavaScript] 純文字檢視 複製程式碼
var obj={
  webName:"螞蟻部落",
  age:3
}
if(obj.hasOwnProperty("webName")){
  console.log("存在此屬性");
}
if(!obj.hasOwnProperty("address")){
  console.log("此屬性不存在");
}

關於hasOwnProperty()函式可以參閱javascript hasOwnProperty()一章節。

實現方法三:

[JavaScript] 純文字檢視 複製程式碼
var obj={
  webName:"螞蟻部落",
  age:3
}
if("webName" in obj){
  console.log("具有此屬性");
}

相關文章