Что означает выражение «&&» в этом фрагменте кода JavaScript?

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

person pikachu0    schedule 25.03.2013    source источник
comment
Ответ здесь: developer.mozilla.org/en-US /docs/JavaScript/Справочник/Операторы/   -  person Denys Séguret    schedule 25.03.2013
comment
В большинстве случаев это логическое И.   -  person John Dvorak    schedule 25.03.2013
comment
возможный дубликат оператора && в Javascript   -  person epascarello    schedule 25.03.2013


Ответы (2)


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

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

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

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

person Community    schedule 25.03.2013

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

person Christopher Swasey    schedule 25.03.2013