How does the double exclamation (!!) work in javascript?

How does the double exclamation (!!) work in javascript?

! is the logical negation or not operator. !! is ! twice. Its a way of casting a truthy or falsy value to true or false, respectively. Given a boolean, ! will negate the value, i.e. !true yields false and vice versa. Given something other than a boolean, the value will first be converted to a boolean and then negated. For example, !undefined will first convert undefined to false and then negate it, yielding true. Applying a second ! operator (!!undefined) yields false, so in effect !!undefined converts undefined to false.

In JavaScript, the values false, null, undefined, 0, -0, NaN, and (empty string) are falsy values. All other values are truthy.(1):7.1.2 Heres a truth table of ! and !! applied to various values:

 value     │  !value  │  !!value
━━━━━━━━━━━┿━━━━━━━━━━┿━━━━━━━━━━━
 false     │ ✔ true   │   false
 true      │   false  │ ✔ true
 null      │ ✔ true   │   false
 undefined │ ✔ true   │   false
 0         │ ✔ true   │   false
 -0        │ ✔ true   │   false
 1         │   false  │ ✔ true
 -5        │   false  │ ✔ true
 NaN       │ ✔ true   │   false
         │ ✔ true   │   false
 hello   │   false  │ ✔ true

How does the double exclamation (!!) work in javascript?

Leave a Reply

Your email address will not be published.