Operadores lógicos en JavaScript, ¿cómo los usa?

No entiendo cómo && , || y ! trabajo … ambos con bools y otros tipos de datos. ¿Cómo los usas?

Todos los valores en Javascript son “truey” o “falsy”.

  • a && b evalúa al primer operando de falsy
  • a || b a || b evalúa al primer operando de verdad

Ambos operadores no evaluarán ningún operando después del que devuelve.
Si todos los operandos no coinciden, se evaluará a la última.

  • !a evalúa a true si a es falso y false si a es verdad.

Todos los valores son verdaderos, excepto los siguientes, que son falsos :

  • false
  • +0
  • -0
  • NaN
  • ""
  • null
  • undefined
  • document.all

Si quiere probar que las dos condiciones son ciertas, use &&:

 if (isX && isY) { // Do something. } 

Si quieres probar que una o ambas condiciones son ciertas, usa ||:

 if (isX || isY) { // Do something. } 

El ! invierte un valor booleano (un valor de verdad se convierte en falso y viceversa).