用法
- 双感叹号
!!
可以将一个值转换成对应的Boolean
值, - 第一个感叹号
!
是将其转化成取反后的Boolean
类型的值 - 第二个感叹号
!!
是将取反后的Boolean
类型的值再进行一次取反运算,才能得到自身对应真正的布尔值 - 双感叹号
!!
相当于强制转换布尔类型Boolean()
示例
- 初始值:
console.log('初始值:')
console.log('值:', {}, '类型:',typeof {})
console.log('值:', [], '类型:',typeof [])
console.log('值:', "", '类型:',typeof "")
console.log('值:', NaN, '类型:',typeof NaN)
console.log('值:', undefined, '类型:',typeof undefined)
console.log('值:', null, '类型:',typeof null)
初始值:
值: {} 类型: object
值: [] 类型: object
值: "" 类型: string
值: NaN 类型: number
值: undefined 类型: undefined
值: null 类型: object
- 使用单感叹号(
!
),取反:
console.log('单感叹号:')
console.log('值:', !{}, '类型:',typeof !{})
console.log('值:', ![], '类型:',typeof ![])
console.log('值:', !"", '类型:',typeof !"")
console.log('值:', !NaN, '类型:',typeof !NaN)
console.log('值:', !undefined, '类型:',typeof !undefined)
console.log('值:', !null, '类型:',typeof !null)
单感叹号:
值: false 类型: boolean
值: false 类型: boolean
值: true 类型: boolean
值: true 类型: boolean
值: true 类型: boolean
值: true 类型: boolean
- 使用双感叹号(
!!
),再取反,负负得正就是他本身:
console.log('双感叹号:')
console.log('值:', !!{}, '类型:',typeof !!{})
console.log('值:', !![], '类型:',typeof !![])
console.log('值:', !!"", '类型:',typeof !!"")
console.log('值:', !!NaN, '类型:',typeof !!NaN)
console.log('值:', !!undefined, '类型:',typeof !!undefined)
console.log('值:', !!null, '类型:',typeof !!null)
双感叹号:
值: true 类型: boolean
值: true 类型: boolean
值: false 类型: boolean
值: false 类型: boolean
值: false 类型: boolean
值: false 类型: boolean
- 使用
Boolean()
强制转换,等价于双感叹号(!!
):
console.log('Boolean():')
console.log('值:', Boolean({}), '类型:',typeof Boolean({}))
console.log('值:', Boolean([]), '类型:',typeof Boolean([]))
console.log('值:', Boolean(""), '类型:',typeof Boolean(""))
console.log('值:', Boolean(NaN), '类型:',typeof Boolean(NaN))
console.log('值:', Boolean(undefined), '类型:',typeof Boolean(undefined))
console.log('值:', Boolean(null), '类型:',typeof Boolean(null))
Boolean():
值: true 类型: boolean
值: true 类型: boolean
值: false 类型: boolean
值: false 类型: boolean
值: false 类型: boolean
值: false 类型: boolean