El lógico && y || operadores en JavaScript

Quería más aclaraciones sobre algo.

Considera esto:

var a = 42;
var b = "abc";
var c = null;

a || b;     // 42 
a && b;     // "abc"
c || b;     // "abc" 
c && b;     // null 

Sé que para el|| operador, si la prueba en el primer operando es verdadera, el|| La expresión da como resultado el valor del primer operando (a o c). Si la prueba es falsa, el|| La expresión da como resultado el valor del segundo operando (b).

Inversamente, para el&& operador, si la prueba es verdadera, el&& La expresión da como resultado el valor del segundo operando (b). Si la prueba es falsa, el&& la expresión da como resultado el valor del primer operando (a o c)

Entonces, ¿qué está sucediendo exactamente cuando usa el&& y|| operadores con valores de encadenamiento como:

if(a && b && c && d && e){
    //do something;
}

if(a || b || c || d || e){
    //do something
}

¿Qué está sucediendo exactamente cuando encadena los valores? Porque en el primer ejemplo (que involucra el&& operador) si a es verdadero, entonces b debería devolverse ¿verdad? entonces, ¿se tienen en cuenta c o d en ese punto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta