1. 程式人生 > 實用技巧 >javascript如何判斷物件是否包含某屬性?

javascript如何判斷物件是否包含某屬性?

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。適用於只判斷自身屬性的場景