您好,我最近从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'))
答案 0 :(得分:7)
此处,由于未使用结果,logical AND被用作一种短if
。
与
相同if ((jq=jq.slice(1)).length) hidenext(jq);
它使用的事实是,如果第一部分没有评估为真,则不会评估第二部分。
答案 1 :(得分:2)
这意味着hidenext(jq)
只会在jq
(现在设置为jq.slice(1)
的返回值length
> 0时被调用。因为{{1}如果第一个操作数是假的,则暂停评估。