条件中的类型转换
一般情况下,if(条件)
中的条件
很少为纯粹的布尔值,更多的是''
,0
,1
等其他类型。
那对于这些非布尔值if
语句将会如何判断呢?
很简单,打开控制台试一下
// Number
!!0 // false
!!1 // true
!!-1 // true
!!0.001 // true
// String
!!'' // false
!!'yo' // true
!!'0' // true
// 其他
!!null // false
!!undefined // false
!!NaN // false
!!function() {} // true
!![] // true
!!{} // true
好多,怎么记?
要记就只记false
倾向的值,而且记两个就好了
!!0 // false
!!'' // false
其他的如undefined
、null
、NaN
一看就是怪胎,你不false
谁false
?
登录后评论