了解如何检查对象属性
如果您使用 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中文网其他相关文章!