js 中的 Truthy 和 Falsy(真值与假值)

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】|(真值与假值)

猜你喜欢

转载自blog.csdn.net/u012302552/article/details/84818278