Truthy 不等于 ture,他是指是在Boolean上下文中转换后的值为真的值。我的理解是,在javascript中所有表达式为true的值。同理Falsy指的是在javascript中所有表达式为false的值。
所有值都是真值,除非它们被定义为 falsy (即, 除了false,0,“”,null,undefined和NaN 外)。
一、 Truthy
JavaScript中的真值示例如下(将被转换为true类型,if 后的代码段将被执行):
if (true)
if ({})
if ([])
if (42)
if ("foo")
if (new Date())
if (-42)
if (3.14)
if (-3.14)
if (Infinity)
if (-Infinity)
二、Falsy
JavaScript中falsy值的例子 (将falsy值转换为false):
if (false)
if (null)
if (undefined)
if (0)
if (NaN)
if ('')
if ("")
三 、 将数组中的 falsy 值去除
const arr = [3, 4, 5, 2, 3, undefined, null, 0, ""];
答案:
var b =arr.filter(Boolean); //[3,4,5,2,3]
或
let newArr = arr.filter(val=>val); //[3,4,5,2,3]
四 、Boolean 函数
Boolean 是一个函数,它会对遍历数组中的元素,并根据元素的真假类型,对应返回 true 或 false.
eg:
Boolean(0); // false
Boolean(true); // true
Boolean(1); // true
Boolean(""); // false
Boolean("false"); // true. "false"是一个非空字符串
文章内容参考:js中的【Truthy】和【Falsy】|(真值与假值)