2013-03-25 102 views
1

嗨,我最近從here得到了一段JavaScript代碼片段。在這段JavaScript代碼中,'&&'表達意味着什麼?

請問有人能解釋一下這個聲明是如何工作的:(jq=jq.slice(1)).length && hidenext(jq);在下面的函數中?

(function hidenext(jq){ 
    jq.eq(0).fadeOut("fast", function(){ 
     (jq=jq.slice(1)).length && hidenext(jq); 
    }); 
})($('div#bodyContent a')) 
+4

的答案在這裏:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Logical_Operators – 2013-03-25 17:56:23

+2

最通常的,這是一個邏輯AND。 – 2013-03-25 17:56:36

+0

可能重複的[&&操作符在JavaScript](http:///stackoverflow.com/questions/8720645/operator-in-javascript) – epascarello 2013-03-25 17:59:41

回答

7

在此,作爲結果,不使用時,logical AND用作種短if

這是一樣

if ((jq=jq.slice(1)).length) hidenext(jq); 

它使用的事實,如果第一個不評估爲真,第二部分將不進行評估。

+0

非常感謝! – pikachu0 2013-03-25 18:03:24

2

這意味着,如果jq(現在被設置爲的jq.slice(1)返回值hidenext(jq)纔會被調用具有length> 0。因爲&&短路,評估如果第一操作數是falsy停止。