Truthy
在JavaScript中,**真值**是指在布尔上下文中被视为true
的值。除非被定义为假值,否则所有值都是真值。也就是说,除了false
、0
、-0
、0n
、""
、null
、undefined
、NaN
和document.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"