在 JavaScript 中使用带有对象的逻辑操作数

Using logical operands in javascript with objects

本文关键字:对象 操作数 JavaScript      更新时间:2023-09-26

我遇到了对对象的逻辑操作数&&的使用,但是想知道表达式是否仅在处理对象时以以下方式计算。

代码示例

var sampleObject = {
            size: 10, 
            shoe: {
                make: "nike",
                model: "air jordon"
            },
            color: "red"
            }
    console.log(sampleObject.size && sampleObject.shoe.model);

console.log(sampleObject.size && sampleObject.shoe.model);返回air jordon .我的理解是,因为第一个条件,即 sampleObject.size计算结果为 true,并且不falsely它返回对象中包含的值 sampleObbject.shoe.model

||&& 运算符从左到右运行。在 || 的情况下,返回第一个真值。对于&&,这是第一个虚假值。在这两种情况下,如果未找到合适的返回值,则返回最后一个返回值。

因此,在这种情况下,它为表达式返回真值的事实意味着sampleObject.sizesampleObject.show.model都是真值。

Javascript && 运算符首先计算其左操作数。 如果它是假值,则它是整个表达式的值。 如果它是真值,则计算正确的操作数,并返回该操作数。

零、空字符串、未定义和 false 都是假值。 您的 sampleObject.size 值为 10,这是一个真实值,因此将计算正确的操作数并将其用作整个表达式的值。

请注意,这些都不依赖于作为对象的值。