The !!(not not) is the repetition of the unary logical operator not(!) twice. The double negation(!!) operator calculates the truth value of a value. This operator returns a boolean value, which depends on the truthiness of the given expression.
In general, logical not(!) determines the “truth” of what a value is not:
- The truth is that false is not true (that’s why !false results in true)
- The truth is that true is not false (that’s why !true results in false)
!! determines the “truth” of what a value is not not:
- The truth is that true is not not true (that’s why !!true results in true)
- The truth is that false is not not false (that’s why !!false results in false)
Example-1: This example checks the truthyness of the boolean value true.
<script> // Write Javascript code here var n1; /* checking truthyness of the boolean value true. */ n1 = !! true ; document.write(n1); </script> |
Output:
true
Example-2: This example checks the falsyness of the boolean value false.
<script> // Write Javascript code here var n1; // checking falsyness of the boolean value false. n1 = !! false ; document.write(n1); </script> |
Output:
false
Example-3: This example checks the truthyness or falsyness of a given string.
<script> // Write Javascript code here var n1; // checking the truthyness or falsyness of a given string. n1 = !! "Javascript programming" ; document.write(n1); </script> |
Output:
true
Example-4: This example checks the truthyness or falsyness of a given object.
<script> // Write Javascript code here var n1; // checking the truthyness // or falsyness of a given object. n1 = !!{ articles: 70 }; document.write(n1); </script> |
Output:
true