js判斷對象屬性是否存在的三種方法

1.in 可以檢測自有屬性和繼承屬性

var o={x:1}
'x' in o  //返回true
'y'in o //返回false
'toString' in o //返回true,因爲對象o繼承了原型的toString屬性

2.hasOwnProperty() 只能檢測自有屬性

var o={x:1};
o.hasOwnProperty('x')  //返回true
o.hasOwnProperty('y')  //返回false
o.hasOwnProperty('toString') //返回false,因爲對象o繼承的原型的toString屬性

3.使用!==檢測

var o={x:1}
o.x !== undefined  //返回true
o.y !== undefined //返回false
o.toString !== undefined //返回true,因爲對象o繼承了原型的toString屬性

使用!需要注意對象的屬性值不能設置爲undefined
注意必須是!
,而不是!= 因爲!=不區分undefined和null

var o={x:undefined  }
o.x !== undefined  //返回false
o.y !== undefined //返回false

參考javascript權威指南第6版

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章