double exclamation mark js meaning code example
Example 1: double exclamation mark js
// Converts anything to boolean.
!!false === false
!!true === true
!!0 === false
!!1 === true
!!parseInt("foo") === false // NaN is falsy
!!-1 === true // -1 is truthy
!!(1/0) === true // Infinity is truthy
!!"" === false // empty string is falsy
!!"foo" === true // non-empty string is truthy
!!"false" === true // ...even if it contains a falsy value
!!window.foo === false // undefined is falsy
!!null === false // null is falsy
!!{} === true // an (empty) object is truthy
!![] === true // an (empty) array is truthy; PHP programmers beware!
Example 2: javascript operator double not
// convert to boolean
// The following examples are the only values which result in a false expression
!!0 // false
!!"" // false
!!null // false
!!undefined // false
!!NaN // false