Operadores lógicos em JavaScript – como você os usa?

Eu não entendo como && , || e ! trabalho … ambos com bools e outros tipos de dados. Como você os usa?

Todos os valores em Javascript são “verdadeiros” ou “falsos”.

  • a && b avalia o primeiro operando falsamente
  • a || b a || b avalia para o primeiro operando truthy

Ambos os operadores não avaliarão nenhum operando após o retorno.
Se todos os operandos não corresponderem, ele será avaliado para o último.

  • !a avaliado como true se a é false e false se a é verdadeiro.

Todos os valores são verdadeiros, exceto os seguintes, que são falsos :

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

Se você quiser testar se ambas as duas condições são verdadeiras, use o &&:

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

Se você quiser testar se uma ou ambas as condições são verdadeiras, use ||:

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

O ! inverte um booleano (um valor verdadeiro se torna falso e vice-versa).