Estoy leyendo un blog muy bueno sobre lógica y (&&) en javascript.javascript-y-o-operadores-lógicos/
Que lógico y funciona
Comenzando desde la izquierda y moviéndose hacia la derecha, devuelve el primer operando que es falso. Si no se encontró ningún operando falso, devuelve el último operando.
su ejemplo
FALSO:
3 && 1 && 0 && 10; // => 0
Veo que devuelve 0, según su explicación anterior. Pero ¿por qué es eso? ¿Por qué no se devuelve falso en su lugar? Me doy cuenta de que 0 es "falso", por lo que creo que la declaración ahora se evaluaría como booleana falsa. Pero no tengo razón, ¿puedes explicar por qué?
también presenta este ejemplo
VERDAD
verdadero && 1 && { nombre: 'Juan' } => { nombre: 'Juan' }
Estoy confundido de nuevo. ¿Por qué esta declaración devuelve { nombre: 'John' } en lugar de devolver verdadero?
Gracias gente amable por su paciencia en responder a mi pregunta.