O && e lógico || operadores em JavaScript
Eu queria mais esclarecimentos sobre alguma coisa.
Considere isto:
var a = 42;
var b = "abc";
var c = null;
a || b; // 42
a && b; // "abc"
c || b; // "abc"
c && b; // null
Eu sei que para o||
operador, se o teste no primeiro operando for verdadeiro, o||
A expressão resulta no valor do primeiro operando (a ou c). Se o teste for falso, o||
A expressão resulta no valor do segundo operando (b).
Inversamente, para o&&
operador, se o teste for verdadeiro, o&&
A expressão resulta no valor do segundo operando (b). Se o teste for falso, o&&
A expressão resulta no valor do primeiro operando (a ou c)
Então, o que exatamente está acontecendo quando você usa o&&
e||
operadores com valores de encadeamento, como:
if(a && b && c && d && e){
//do something;
}
if(a || b || c || d || e){
//do something
}
O que exatamente está acontecendo quando você encadeia os valores? Porque no primeiro exemplo (envolvendo o&&
operador) se a for verdadeiro, então b deve ser retornado, certo? então c ou d são levados em consideração nesse ponto?