檢查 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”檢查物件例項屬性以及繼承的屬性(如果有)。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP