Понимание 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
значения приведены ниже.
-
false
-
0
-
empty string
-
null
-
undefined
-
NaN