JavaScript如何判斷對象是否包含某屬性?下面本篇就來給大家介紹幾種使用JavaScript判斷對象是否包含有某屬性的常見方法,希望對大家有所幫助。
一、使用“!==”
“!==”方法在工作中很常見,可以看出該方法可以判斷繼承來的屬性。
let obj = { x: 1 }; obj.x !== undefined; // true 有x屬性 obj.y !== undefined; // false 無y屬性 obj.toString !== undefined; // true 從Object繼承toString屬性
二、 in 運算符
MDN 上有對in運算符的介紹:如果指定的屬性在指定的對象或其原型鏈中,則in 運算符返回true。
let obj = { x: 1 }; 'x' in obj; // true 'y' in obj; // false 'toString' in obj; // true
in運算符語法很簡單,效果跟undefined是相同的,與undefined不同的是,in可以區分存在但值為undefined的屬性。話不多說,看代碼:
let obj = { x: undefined }; obj.x !== undefined; // false 'x' in obj; // true
可以看出如果屬性的值為undefined的時候,使用!== 的方法就不奏效了,所以在工作中需要注意一下這一塊。
資源搜索網站大全 https://www.renrenfan.com.cn 廣州VI設計公司https://www.houdianzi.com
三、hasOwnProperty()
hasOwnProperty()用來判斷某個對象是否含有指定的屬性,返回布爾值,當檢測屬性為自有屬性(非繼承)的時候返回true。
test.hasOwnProperty('name') //true 自身屬性 test.hasOwnProperty('age') //false 不存在 test.hasOwnProperty('toString') //false 原型鏈上屬性
可以看到,只有自身存在該屬性時,才會返回true。適用於只判斷自身屬性的場景