'&&'表达式的意思

What does the '&&' expression mean in this snippet of JavaScript?

本文关键字:意思 表达式      更新时间:2023-09-26

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

在这里,由于没有使用结果,逻辑与被用作一种简短的if

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

它使用了这样一个事实,即如果第一部分不为真,第二部分将不会被求值

这意味着只有当jq(现在设置为jq.slice(1)的返回值)具有length> 0时才会调用hidenext(jq)。因为&&是短路的,如果第一个操作数为false,计算将停止。