var variable = obj1 || obj2;
是这个意思吗?
var variable;
if (obj1)
{
variable = obj1;
}
else if (obj2)
{
variable = obj2:
}
这被认为是不好的做法吗?
是的,就是这个意思,而且这是很好的做法
||
是一个逻辑或,所以如果 obj1 = false
你得到 false OR obj2
所以变量等于 obj2
表达式
a || b
值由最后评估的部分确定,以确定布尔真值。
评估 false || 1
,因为 1
是最后评估的。
true || 0
被评估为 true
,因为它是最后一个评估的。
对于布尔值上下文中的对象,对象被评估为
true
除非 null。这意味着甚至{} === true
。
结合以上两个解释,
var variable = obj1 || obj2
将obj1
和obj2
中的第一个非空对象分配给variable
。