Понимание JavaScript Truthy и Falsy

Может кто-нибудь объяснить объяснение JavaScript Truthy и Falsy, используя приведенные ниже данные. Я прочитал другие темы, но все еще запутался.

var a = 0;

var a = 10 == 5;

var a = 1; 

var a = -1;

С моей точки зрения, я считаю, что var a = 1; является единственной правдой, а остальные ложны - это правильно?

Ответ 1

По моему мнению, я считаю, что var a = 1; является единственной правдой, а остальные фальши - это правильно?

Нет

  • var a = 0;

    Числовое ноль ложь. Однако обратите внимание, что строка 0 "0" является правдой.

  • var a = 10 == 5;

    Это то же самое, что и var a = (10 == 5);, поэтому это ложь.

  • var a = 1;

    var a = -1;

    Любое ненулевое число, включая отрицательные числа, Правка.

Цитата из MDN

В JavaScript истинное значение - это значение, которое преобразуется в true при оценке в булевом контексте. Все значения являются правдивыми, если они не определены как ложные (т.е. Кроме false, 0, "", null, undefined и NaN).

Список значений фальши в JavaScript: Из MDN

  • false
  • null
  • undefined
  • 0
  • NaN
  • ''
  • document.all

Ответ 2

Есть простой способ проверить, который вы можете использовать сейчас и навсегда:

function truthyOrFalsy(a) {
    return a ? "truthy" : "falsy";
}

В частности:

> truthyOrFalsy(0)
"falsy"
> truthyOrFalsy(10 == 5)
"falsy"
> truthyOrFalsy(1)
"truthy"
> truthyOrFalsy(-1)
"truthy"

Также см. список всех значений false в JavaScript.

Ответ 3

Истина → Значение, которое соответствует истине в логическом контексте

Ложь → Значение, которое разрешается в ложь в логическом контексте


Для лучшего понимания falsy значения приведены ниже.

  1. false
  2. 0
  3. empty string
  4. null
  5. undefined
  6. NaN