我遇到了将逻辑操作数&&
与对象一起使用的情况,但是想知道是否仅在处理对象时才按照以下方式评估表达式。
代码样例
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.size
和sampleObject.show.model
均为真实值。