这段代码意味着什么?

时间:2012-02-23 17:05:01

标签: javascript

  

可能重复:
  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:
}

这被认为是不好的做法吗?

3 个答案:

答案 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,因为它是评估的最后一个。

如何在布尔上下文中评估obj

对于布尔值上下文中的对象,对象将被计算为true ,除非为null 。它甚至意味着{} === true

结合上述两个解释,var variable = obj1 || obj2将第一个非空对象从obj1obj2分配给variable