JS的 boolean转换规则

http://es5.github.io/#x11.4.9

 

 

 

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),此时空数组看起来像假值。

 

 

posted @ 2021-01-07 10:48  鲁鲁修丶兰佩尔奇  阅读(156)  评论(0)    收藏  举报