除被定义为假值以外的任何值都为真值。(即所有除 false
、0
、-0
、0n
、""
、null
、undefined
和 NaN
以外的皆为真值)。
如果第一个对象为真值,则逻辑与运算返回第二个操作数。
true && "dog"
// returns "dog"
[] && "dog"
// returns "dog"
双感叹号 !!
是一种常见的 JavaScript 技巧,用于将一个值转换为布尔类型。如果 value
存在(不是 null
、undefined
或空字符串),那么 !!value
的结果就是 true.
短路运算看另一篇