JavaScript 中的 not in 運算子
物件是 JavaScript 中最常用的鍵值屬性。為了檢查某個屬性是否存在,JavaScript 提供了幾種可能性。今天的帖子將向你展示如何在 JavaScript 中檢查物件上是否存在特定屬性。
在 JavaScript 中檢查屬性是否存在
屬性與儲存在物件中的鍵值配對。一個 object
可以包含許多這樣的屬性。JavaScript 中是否存在某個屬性由操作符 id in object
或 Object.prototype.hasOwnProperty()
決定。
JavaScript 中的 Object.prototype.hasOwnProperty()
這是 JavaScript 提供的內建方法,用於檢查指定的屬性是否屬於 Object。它迭代物件並根據結果返回布林值。
語法:
Object.prototype.hasOwnProperty(prop);
此函式將 prop
作為 string
格式的輸入。它是一個強制性引數。此方法只檢查給定的屬性是否存在於物件中,而不管值如何。即使屬性值為 null
或 undefined
,它也會返回 true
。也可以在 Array
上呼叫此方法,因為該陣列是從 Object 派生的。有關更多資訊,請閱讀 hasOwnProperty()
方法的文件。
const inputObject = {
id: 42,
name: 'John Doe'
};
console.log(inputObject.hasOwnProperty('name'));
if (!inputObject.hasOwnProperty('email')) {
inputObject.email = 'Johndoe@gmail.com';
}
console.log(inputObject);
在上面的程式碼塊中,我們定義了物件 id
和 name
的兩個屬性。當你傳遞 inputObject.hasOwnProperty('name')
時,它會檢查 inputObject
中是否存在 name 屬性。如果要檢查相反的條件,請新增!
在條件之前,它將否定檢查。例如,如果物件內不存在新屬性,則可以新增新屬性。上面程式碼給出的輸出可以在下面看到。
輸出:
true
{
email: "Johndoe@gmail.com",
id: 42,
name: "John Doe"
}
JavaScript 中的 in
運算子
它是 JavaScript 提供的內建方法,用於檢查物件或原型鏈是否擁有指定的屬性。它迭代物件並根據結果返回布林值。
語法:
prop in object
此函式將 prop
作為 string
格式的輸入。它是一個強制性引數。此方法僅檢查給定的屬性或陣列索引是否存在於 Object
或其 prototype chain
。也可以在 Array
上呼叫此方法,因為該陣列是從 Object 派生的。有關更多資訊,請閱讀 in
operator 方法的文件。
hasOwnProperty
和 in
運算子之間的主要區別在於,如果屬性是在物件內部繼承的或尚未宣告,則前一個返回 false。相比之下,in
運算子不會檢查物件原型鏈中的指定屬性。例如,Object
基類將 hasOwnProperty
作為一個函式,因此 hasOwnProperty
將返回 false
,而 in
運算子將返回 true
。
const inputObject = {
id: 42,
name: 'John Doe'
};
console.log('name' in inputObject);
if (!('phone' in inputObject)) {
inputObject.phone = '7878787878';
}
console.log(inputObject);
在上面的程式碼塊中,我們定義了物件 id
和 name
的兩個屬性。當你在 inputObject 中傳遞 name
時,它會檢查 inputObject
中是否存在 name 屬性。如果要檢查相反的條件,請新增!
在條件之前,否定檢查。例如,你可以新增一個新屬性 phone
,如果它不存在於物件中。上面的程式碼片段給出的輸出如下所示。
輸出:
true
{
id: 42,
name: "John Doe",
phone: "7878787878"
}
Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.
LinkedIn