boolean转换规则如下
数据类型 | 转换为true的值 | 转换为false的值 |
---|---|---|
Boolean | true | false |
String | 任何非空字符串 | ""空字符串 |
Number | 任何非0数字值(包括无穷大) | 0和NaN |
Object | 任何对象 | null |
Undefined | n/a | undefined |
so,千万别拿{}和 [ ]当false处理,正确的姿势应该是:
Object.keys({}).length === 0
Object.keys([]).length === 0
[].length===0