Skip to content
  • ''
  • ""
  • ``
  • 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
}

其他类型值转为布尔值的方法4: AA || BB, AA && BB...