首页 >web前端 >js教程 >无需 JavaScript 即可掌握或操作

无需 JavaScript 即可掌握或操作

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-16 22:43:30930浏览

Dominando o Operador in no JavaScript

了解如何检查对象属性

如果您使用 JavaScript 编程,您可能会遇到需要知道对象中是否存在某个属性的情况,这就是 in 运算符的用武之地。我将向您展示它的工作原理、如何使用它以及为什么它比检查对象属性的其他方法更有效。

in 运算符是什么?

in 运算符在 JavaScript 中用于检查对象上是否存在属性。很酷的是,它不仅检查对象中直接定义的属性,还检查从原型继承的属性。

语法非常简单:

'propriedade' in objeto;

如果属性存在,则返回 true,如果不存在,则返回 false。看起来很简单,对吧?但它的用处不仅仅是简单的检查。您想看一些例子吗?

示例 1:对象的直接所有权

首先,让我们看一个使用 in 运算符检查直接属性的基本示例。

const carro = {
  marca: 'Toyota',
  ano: 2020
};

console.log('marca' in carro);  // true
console.log('modelo' in carro);  // false

在这里,我们有一个带有品牌和年份属性的汽车对象。当我们在汽车中使用“品牌”时,结果是正确的,因为品牌属性直接存在于对象中。 carro 中的“model”返回 false,因为该属性尚未定义。

这种类型的检查非常适合在尝试访问不存在的属性时避免错误。是否曾尝试访问不存在的财产并破坏了密码?我已经! ?

示例 2:从原型继承的属性

现在,看看 in 运算符如何检测从原型继承的属性

const pessoa = {
  nome: 'Ana'
};

console.log('toString' in pessoa);  // true

在这种情况下,person对象并没有直接拥有toString属性,但是这个函数是从Object.prototype继承的。 in 运算符可以看到这一点并返回 true。

为什么这有用?

有时您可能想检查对象中是否有任何继承的功能可用。这可以在一些更复杂的情况下拯救你。

示例 3:与 hasOwnProperty 比较

现在让我们与另一种检查属性的方法(hasOwnProperty 方法)进行比较。它只检查属性是否直接在对象上定义,忽略继承的属性。

const pessoa = {
  nome: 'Ana'
};
console.log(pessoa.hasOwnProperty('toString'));  // false
console.log('toString' in pessoa);               // true

hasOwnProperty 方法对 toString 返回 false,因为该属性并不直接位于 person 对象上。同时,in 运算符返回 true,因为它也考虑继承的属性。

何时使用ine 何时使用hasOwnProperty?

当向高级开发人员询问任何事情时,答案是谈论最多的,这取决于

  • 如果您想检查任何属性,无论是直接的还是继承的,请使用 in。
  • 如果需要确保该属性是直接在对象上定义的,而忽略从原型继承的属性,请使用 hasOwnProperty。 当您不需要担心属性的来源时,in 运算符更加实用,但两者都在游乐场中占有一席之地,因此您只需要知道在哪个位置以及出于什么目的需要它。

以上是无需 JavaScript 即可掌握或操作的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn