The double negation(!! ) operator is the! Operator twice and calculates the truth value of a value. It returns a Boolean value, which depends on the truthiness of the expression.
Consider (!!p) as !(!p), here’s an example:
If p is a false value, !p is true, and !!p is false. If p is a true value, !p is false, and !!p is true.
Here’s another example:
0 === false is false.
!!0 === false is true.
!!0 === false
!!parseInt("foo") === false
!!1 === true
!!-1 === true
!!false === false
!!true === true