在javascript中使用逻辑操作数与对象

时间:2012-06-25 01:23:56

标签: javascript

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

代码示例

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被评估为真,并且不是falsely,它返回对象sampleObbject.shoe.model中包含的值。

2 个答案:

答案 0 :(得分:2)

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

零,空字符串,未定义和假都是假值。您的sampleObject.size值为10,一个truthy值,因此评估右操作数并将其用作整个表达式的值。

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

答案 1 :(得分:2)

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

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