2011-09-16 71 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