【问题标题】:what does the "||" in a var statement mean? [duplicate]“||”是什么意思在 var 语句中是什么意思? [复制]
【发布时间】:2011-11-18 14:32:43
【问题描述】:

可能重复:
null coalescing operator for javascript?
What does “options = options || {}” mean in Javascript?

有人能解释一下这个表达吗?我偶然发现了 javascript 代码行,我想知道它是什么意思。

var node = element.node || element[element.length - 1].node;

node get 的用法如下:

if (node.nextSibling) {
            node.parentNode.insertBefore(this.node, node.nextSibling);
        } else {
            node.parentNode[appendChild](this.node);
        }

起初我虽然节点应该是一个布尔值或其他东西,但它不是。 如果我认为意思是:节点是 element.node 但如果节点属性是未定义的节点是元素数组中的最后一个元素,我是否正确?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您的理解是正确的;请注意,即使定义了 element.node,但它是一个 falsey 值(0false 等),element[element.length - 1].node 将被分配给 node

    【讨论】:

      【解决方案2】:

      这意味着,如果element.node在布尔表达式中有一个代表True的值,则node将为element.node,否则为element[element.length - 1].node

      【讨论】:

        【解决方案3】:

        简单回答:意思是OR :)

        参考:http://www.w3schools.com/js/js_operators.asp

        【讨论】:

        • 那部分很明显。真正的问题是:某种奇怪的“或”操作是否接受对象而不是布尔值,并且还返回一个对象而不是布尔值?这个“或”是如何定义的?因为它肯定不是按逻辑的标准定义。
        【解决方案4】:

        意思是或

        例如:

        if this || that
        

        意思是“如果这样或那样”

        所以当电脑来到“||”部分代码,如果前面的语句为真,它将停止读取该 if 语句并自动执行下面的代码。

        如果“||”之前的项目为假,则检查下一个,以此类推...

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-10-27
          • 2015-07-15
          • 2018-07-17
          • 2012-08-13
          • 2011-06-20
          • 1970-01-01
          相关资源
          最近更新 更多