有人可以使用以下示例数据解释 JavaScript Truthy 和 Falsy。我已经阅读了其他线程,但仍然感到困惑。
var a = 0;
var a = 10 == 5;
var a = 1;
var a = -1;
根据我的理解,我相信这var a = 1;
是唯一的真理,其余的都是假的 - 这是正确的吗?
有人可以使用以下示例数据解释 JavaScript Truthy 和 Falsy。我已经阅读了其他线程,但仍然感到困惑。
var a = 0;
var a = 10 == 5;
var a = 1;
var a = -1;
根据我的理解,我相信这var a = 1;
是唯一的真理,其余的都是假的 - 这是正确的吗?
根据我的理解,我认为 var a = 1; 是唯一的真的,其余的都是假的 - 这是正确的吗?
不。
变量 a = 0;
数字零是假的。但是,请注意字符串零"0"
是真实的。
var a = 10 == 5;
这是一样的var a = (10 == 5);
,所以这是假的。
变量 a = 1;
var a = -1;
包括负数在内的任何非零数都是true。
引自MDN
在 JavaScript 中,真值是在布尔上下文中计算时转换为真的值。所有值均为truthy除非它们被定义为falsy(即,除了
false
,0
,""
,null
,undefined
,和NaN
)。
JavaScript 中的假值列表:来自 MDN
false
null
undefined
0
NaN
''
, ""
, ``
(空模板字符串)document.all
0n
: 大整数-0
有一种简单的检查方法,您现在和永远都可以使用:
function truthyOrFalsy(a) {
return a ? "truthy" : "falsy";
}
以机智:
> truthyOrFalsy(0)
"falsy"
> truthyOrFalsy(10 == 5)
"falsy"
> truthyOrFalsy(1)
"truthy"
> truthyOrFalsy(-1)
"truthy"
Truthy -> 在布尔上下文中解析为 true 的值
Falsy -> 在布尔上下文中解析为 false 的值
false
0
empty string
null
undefined
NaN
假的
注意:空数组 ([]) 不是假的
真实
在JavaScript中,&&
而||
并不总是产生一个布尔值。两个运算符始终返回其操作数表达式之一的值。使用双重否定!!
或Boolean
函数,可以将“真”和“假”值转换为正确的布尔值。
true && true =>
true
true && false =>
false
true && 'rahul626'=>
"rahul626"
true && 'i am testing Truthy' && ' upvote it'=>
" upvote it"