JS的 boolean转换规则

boolean转换规则如下
| 数据类型 | 转换为true的值 | 转换为false的值 |
|---|---|---|
| Boolean | true | false |
| String | 任何非空字符串 | ""空字符串 |
| Number | 任何非0数字值(包括无穷大) | 0和NaN |
| Object | 任何对象 | null |
| Undefined | n/a | undefined |
![] // false
!![] // true
[] == 0 // true
[0] == 0 // true
! 算符是根据 ToBoolean 算法再取反,ToBoolean 算法将包含空数组在内的 Object 当作真值;而上面用 == 比较的情况等价于 ToPrimitive([]) == ToNumber(false),此时空数组看起来像假值。

浙公网安备 33010602011771号