Truthy

JavaScript中,**真值**是指在布尔上下文中被视为true的值。除非被定义为假值,否则所有值都是真值。也就是说,除了false0-00n""nullundefinedNaNdocument.all之外,所有值都是真值

JavaScript在布尔上下文中使用类型强制转换

JavaScript中真值的示例(在布尔上下文中会被强制转换为true,从而执行if块)

js
if (true)
if ({})
if ([])
if (42)
if ("0")
if ("false")
if (new Date())
if (-42)
if (12n)
if (3.14)
if (-3.14)
if (Infinity)
if (-Infinity)

逻辑与运算符,&&

如果第一个操作数为真值,则逻辑与运算符返回第二个操作数

js
true && "dog"
// returns "dog"

[] && "dog"
// returns "dog"

另请参阅