Appearance
- ''
- ""
- ``
- 0
- +0
- -0
- 0n
- -0n
- NaN
- false
- null
- undefined
- document.all
只有以上的值转为布尔值是false, 其余都是true
其他类型值转为布尔值的方法1:Boolean([val])
其他类型值转为布尔值的方法2:! // !!
! 先转为布尔值,再取反
!! 转为布尔值取反再取反,只相当于转为布尔值 <=> Boolean()
js
!1 // false
!!'' // false
!!'123' // true
!!1 // true
!!-1 // true
!!0 // false
!!NaN //false
!!false // false
!!true // true
!!null //false
!!undefined // false
!!Number('12px') // false
!![] // true,引用数据类型转化为布尔值和toPrimitive/valueOf/toString无关
!!{} // true其他类型值转为布尔值的方法3:条件判断
如果条件只是一个值,不是 ==、===、!=、>=... 这些比较符,把这个值先转化为布尔值,然后验证真假
js
if (1) {
// true
}
if ('3px' + 3) {
// true
}
if ('3px' - 3) {
// false
}