关于javascript:var语句中的“||”是什么意思?

what does the “||” in a var statement mean?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
null coalescing operator for javascript?
What does “options = options || {}” mean in Javascript?

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

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

使用的节点get如下:

1
2
3
4
5
if (node.nextSibling) {
            node.parentNode.insertBefore(this.node, node.nextSibling);
        } else {
            node.parentNode[appendChild](this.node);
        }

起初我认为节点应该是一个布尔型的或者其他什么类型的,但事实并非如此。如果我认为意思是:node是element.node,但是如果node属性是undefined,那么node是元素数组中的最后一个元素,对吗?


简单回答:表示OR

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


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


这意味着,如果element.node的值在布尔表达式中表示为真,那么node将是element.node,否则将是element[element.length - 1].node


它意味着或

例如:

1
if this || that

意思是"如果这个或那个"

因此,当计算机进入代码的""部分时,如果前面的语句为真,它将停止读取if语句并自动执行下面的代码。

如果该""之前的项是假的,那么它将检查下一项,依此类推…