条件中的类型转换
一般情况下,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?
登录后评论