了解如何檢查物件屬性
如果您使用 JavaScript 編程,您可能會遇到需要知道物件中是否存在某個屬性的情況,這就是 in 運算符的用武之地。我將向您展示它的工作原理、如何使用它以及為什麼它比檢查物件屬性的其他方法更有效。
in 運算子在 JavaScript 中用來檢查物件上是否存在屬性。很酷的是,它不僅檢查物件中直接定義的屬性,還檢查從原型繼承的屬性。
文法非常簡單:
'propriedade' in objeto;
如果屬性存在,則傳回 true,如果不存在,則傳回 false。看起來很簡單,對吧?但它的用處不僅僅是簡單的檢查。您想看一些例子嗎?
首先,讓我們來看一個使用 in 運算子檢查直接屬性的基本範例。
const carro = { marca: 'Toyota', ano: 2020 }; console.log('marca' in carro); // true console.log('modelo' in carro); // false
在這裡,我們有一個帶有品牌和年份屬性的汽車物件。當我們在汽車中使用“品牌”時,結果是正確的,因為品牌屬性直接存在於物件中。 carro 中的 'model' 傳回 false,因為該屬性尚未定義。
這種類型的檢查非常適合在嘗試存取不存在的屬性時避免錯誤。是否曾嘗試存取不存在的財產並破壞了密碼?我已經! ?
現在,看看 in 運算子如何偵測從原型繼承的屬性
const pessoa = { nome: 'Ana' }; console.log('toString' in pessoa); // true
在這種情況下,person物件並沒有直接擁有toString屬性,但是這個函數是從Object.prototype繼承的。 in 運算子可以看到這一點並傳回 true。
有時您可能想要檢查物件中是否有任何繼承的功能可用。這可以在一些更複雜的情況下拯救你。
現在讓我們與另一種檢查屬性的方法(hasOwnProperty 方法)進行比較。它只檢查屬性是否直接在物件上定義,忽略繼承的屬性。
const pessoa = { nome: 'Ana' }; console.log(pessoa.hasOwnProperty('toString')); // false console.log('toString' in pessoa); // true
hasOwnProperty 方法對 toString 傳回 false,因為屬性並非直接位於 person 物件上。同時,in 運算子傳回 true,因為它也考慮繼承的屬性。
當向高級開發人員詢問任何事情時,答案是談論最多的,這取決於。
以上是無需 JavaScript 即可掌握或操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!