我遇到了将逻辑操作数&&与对象一起使用的情况,但是想知道是否仅在处理对象时才按照以下方式评估表达式。

代码样例

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);中的out返回air jordon。我的理解是,因为第一个条件即sampleObject.size评估为true而不是falsely它将返回对象sampleObbject.shoe.model中包含的值。

最佳答案

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

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

07-26 03:41