2013-03-25 109 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停止。