javascript如何判斷物件是否包含某屬性?
阿新 • • 發佈:2020-12-04
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。適用於只判斷自身屬性的場景