1

嗨,我最近从这里得到了一段 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

2 回答 2

7

在这里,由于没有使用结果,逻辑 AND被用作一种 short if

这是一样的

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

它使用这样一个事实,即如果第一部分未评估为真,则不会评估第二部分。

于 2013-03-25T17:57:45.500 回答
2

这意味着只有在(现在设置为返回值has a > 0hidenext(jq)时才会调用它。因为短路了,如果第一个操作数是假的,评估就会停止。jqjq.slice(1)length&&

于 2013-03-25T17:58:09.407 回答