2011-09-16 72 views
1

可能重复:
null coalescing operator for javascript?
What does “options = options || {}” mean in Javascript?什么是“||”在var语句中是什么意思?

有人可以解释我这个表情?我偶然发现了JavaScript代码行,我想知道它的含义。

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

节点获取的像这样使用如下:

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

起初我以为节点应该是布尔或东西,但事实并非如此。 我是否正确,如果我认为其含义是:节点是element.node但如果节点属性未定义节点是元素数组中的最后一个元素?

回答

3

你理解是沿着正确的路线;请注意,即使element.node被定义,但是虚假值(0,false等)element[element.length - 1].node将被分配给node

1

这意味着OR

例如:

if this || that 

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

所以当计算机来到“||”你的代码的一部分,如果它之前的语句是真的,它将停止阅读,如果语句并自动执行下面的代码。

如果之前的项目“||”是假的,那么它会检查下一个,依此类推......

2

这意味着,如果element.node有一个值表示布尔表达式真,nodeelement.node,否则会被element[element.length - 1].node