有人可以使用以下示例数据解释 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
falsenullundefined0NaN'', "", ``(空模板字符串)document.all0n: 大整数-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 的值
false0empty stringnullundefinedNaN假的
注意:空数组 ([]) 不是假的
真实
在JavaScript中,&&而||并不总是产生一个布尔值。两个运算符始终返回其操作数表达式之一的值。使用双重否定!!或Boolean函数,可以将“真”和“假”值转换为正确的布尔值。
true && true =>
true
true && false =>
false
true && 'rahul626'=>
"rahul626"
true && 'i am testing Truthy' && ' upvote it'=>
" upvote it"