【问题标题】:What does this bit of code mean? [duplicate]这段代码是什么意思? [复制]
【发布时间】:2012-03-14 03:06:32
【问题描述】:

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

这是否被认为是不良行为?

【问题讨论】:

标签: javascript


【解决方案1】:

|| operator 如果解析为真值,则返回其左侧,否则返回其右侧。

所以意思是一样的:

var variable;
if (obj1){
    variable = obj1;
} else {
    variable = obj2:
}

注意elsenotelse if

这是一种常见的模式,通常不会被认为是不好的做法。

问题是你需要确定你想要if (obj) 而不是if (typeof obj !== "undefined")

【讨论】:

    【解决方案2】:

    是的,这就是它的意思,这是一种很好的做法

    || 是逻辑或,所以如果obj1 = false 你得到false OR obj2 所以变量等于obj2

    【讨论】:

      【解决方案3】:

      如何 ||表达作品

      表达式a || b 的值由最后的部分确定,以确定布尔真值。

      false || 1 被评估为 1 是最后一个评估的。

      true || 0 被评估为 true,因为它是最后一个评估的。

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

      对于布尔值上下文中的对象,对象被评估为true除非为空。它甚至意味着{} === true

      结合以上两种解释,var variable = obj1 || obj2obj1obj2中的第一个none null对象赋值给variable

      【讨论】:

        猜你喜欢
        • 2014-01-05
        • 2011-08-26
        • 1970-01-01
        • 2014-01-10
        • 2018-07-07
        • 1970-01-01
        • 2016-03-28
        相关资源
        最近更新 更多