可能重复:
Javascript Shorthand - What Does the '||' Operator Mean When Used in an Assignment?
var variable = obj1 || obj2;
这是不是意味着这个?
var variable;
if (obj1)
{
variable = obj1;
}
else if (obj2)
{
variable = obj2:
}
这被认为是不好的做法吗?
答案 0 :(得分:5)
||
operator如果解析为真值则返回其左侧,否则返回其右侧。
所以它意味着:
var variable;
if (obj1){
variable = obj1;
} else {
variable = obj2:
}
注意其他,不,否则。
这是一种常见的模式,通常不被视为不良做法。
问题是你需要确定自己需要if (obj)
而不是if (typeof obj !== "undefined")
。
答案 1 :(得分:0)
是的,这就是它的意思,这是一种很好的做法
||
是一个逻辑OR,所以如果obj1 = false
得到false OR obj2
所以变量等于obj2
答案 2 :(得分:0)
表达式a || b
值由最后一次评估确定布尔真值的部分确定。
false || 1
,因为1
是评估的最后一个。
true || 0
被评估为true
,因为它是评估的最后一个。
对于布尔值上下文中的对象,对象将被计算为true
,除非为null 。它甚至意味着{} === true
。
结合上述两个解释,var variable = obj1 || obj2
将第一个非空对象从obj1
和obj2
分配给variable
。