檢查 JavaScript 物件中是否存在鍵


我們需要說明檢查物件中是否存在特定鍵的正確方法。在繼續介紹正確方法之前,讓我們先檢查一種錯誤的方法,並瞭解它為什麼不正確。

方法 1:檢查 undefined 值(錯誤方法)

由於 JavaScript 的易變性,我們可能希望像這樣檢查物件中是否存在鍵:

const obj = {
name: 'Rahul'
};
if(!obj['fName']){}

或者

if(obj['fName'] === undefined){}

這兩種方法都是錯誤的。為什麼?

因為在這種情況下,不存在“fName”鍵,但假設存在一個“fName”鍵,並且它被故意設定為 false 或 undefined。

我們的函式應該返回該鍵不存在,但實際上它存在。因此,在這種情況下,此方法失敗。

方法 2 - 使用 in 運算子(正確方法)

在 ES6 中引入的 in 關鍵字檢查可迭代物件中的條目。因此,要檢查鍵是否存在,我們可以執行以下操作:

('fName' in obj);

方法 3 - 使用 hasOwnProperty() 方法(正確方法)

使用 Object.prototype.hasOwnProperty() 方法,我們可以確定物件是否包含某個鍵。

其語法為:

obj.hasOwnProperty('fName');

方法 2 和方法 3 之間的區別在於,方法 3 僅檢查其呼叫的物件例項的屬性,而“in”檢查物件例項屬性以及繼承的屬性(如果有)。


更新於: 2020-11-20

363 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.