什么'&&'表达式意味着在这个JavaScript片段?

时间:2013-03-25 17:55:31

标签: javascript jquery ampersand

您好,我最近从here获得了一段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'))

2 个答案:

答案 0 :(得分:7)

此处,由于未使用结果,logical AND被用作一种短if

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

它使用的事实是,如果第一部分没有评估为真,则不会评估第二部分。

答案 1 :(得分:2)

这意味着hidenext(jq)只会在jq(现在设置为jq.slice(1)的返回值length> 0时被调用。因为{{1}如果第一个操作数是假的,则暂停评估。