Логические операторы в JavaScript - как вы их используете?

Я не понимаю, как работают &&, || и !... как с bools, так и с другими типами данных. Как вы их используете?

Ответ 1

Все значения в Javascript являются "правдивыми" или "ложными".

  • a && b оценивает первый ложный операнд
  • a || b a || b оценивает первый правдивый операнд

Оба оператора не будут оценивать операнды после возвращения.
Если все операнды не совпадают, он будет оцениваться последним.

  • !a оценивает значение true если a является ложным и false если a является правдивым.

Все значения являются правдивыми, кроме следующих, которые являются ложными:

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

Ответ 2

Если вы хотите проверить, что оба условия являются правдивыми, используйте & &:

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

Если вы хотите проверить, что одно или оба из двух условий являются правдивыми, используйте ||:

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

! инвертирует логическое значение (истинное значение становится ложным и наоборот).