檢測(cè)obj是否存在name屬性偷崩。
let obj = {name: "MIke"}
1.in 關(guān)鍵字
不僅可以檢測(cè)到對(duì)象自身的屬性,還可以檢測(cè)繼承屬性帚呼,比如 toString
"name" in obj // true 自身屬性
"toString" in obj // true 繼承自其原型的屬性
2. hasOwnPropertyOf()方法
該方法只能檢測(cè)自身屬性掏缎,不能檢測(cè)繼承屬性
obj. hasOwnProperty('name') // true 自身屬性
obj. hasOwnProperty('toString') // false 繼承屬性
3. 直接獲取屬性值(undefined判斷)
自身屬性和繼承屬性都可以檢測(cè)
obj.name !== undefined // false 則不存在
obj.toString !== undefined //true 存在
但是這種方式的不足之處是,如果name的值就是undefined
如:
obj = {name: undefined};
obj.name !== undefined // false 屬性存在(undefined)但結(jié)果仍為false
4. 用if判斷
if(obj.name)