2013-03-25 2 views
1

Привет, Недавно я получил фрагмент кода JavaScript от 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')) 
+4

В answer is here: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Logical_Operators –

+2

В общем, это логичный И. –

+0

возможный дубликат оператора [&& в Javascript] (http://stackoverflow.com/questions/8720645/operator-in-javascript) – epascarello

ответ

7

Здесь, как результат не используется, logical AND используется как своего рода короткий if.

Это то же самое, как

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

Он использует тот факт, что вторая часть не будет оцениваться, если первый один не оценивает, как верно.

+0

Большое спасибо! – pikachu0

2

Это означает, что hidenext(jq) будет вызываться только если jq (теперь установлен на возвращаемое значение jq.slice(1) имеет length> 0. Поскольку && замыкают накоротко, оценка останавливается, если первый операнд является falsy.