Bootstrap

JS当中的!!和??

!!主要是为了判断某一个值是否为false,false的情况包括:

// 0, '', false, null, undefined
!!0
!!''
!!false
!!null
!!undefined
// 全部为false

除了这些之外,其他情况全部都为true

??主要是为了判断null和undefined,因为有些情况下我们不能完全排除一些false的情况,比如说0在通常情况下会被判定为false,但当0是一个有效值时就需要绕开通常的判断情况,这时我们可以使用??
??的语法和!!不同

0 ?? 30 // 0
'' ?? 30 // ''
'1' ?? 30 // '1'
false ?? 30 // false
null ?? 30 // 30
undefined ?? 30 // 30
;