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

ここでは、結果が使用されていないため、論理積が一種のshortとして使用されifます。

と同じです

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

最初の部分がtrueと評価されない場合、2番目の部分は評価されないという事実を使用します。

于 2013-03-25T17:57:45.500 に答える
2

これは、(の戻り値に設定されているが> 0のhidenext(jq)場合にのみ呼び出されることを意味します。が短絡しているため、最初のオペランドが偽の場合、評価は停止されます。jqjq.slice(1)length&&

于 2013-03-25T17:58:09.407 に答える