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>
var n1;
n1 = !! true ;
document.write(n1);
</script>
|
Output:
true
Example-2: This example checks the falsyness of the boolean value false.
<script>
var n1;
n1 = !! false ;
document.write(n1);
</script>
|
Output:
false
Example-3: This example checks the truthyness or falsyness of a given string.
<script>
var n1;
n1 = !! "Javascript programming" ;
document.write(n1);
</script>
|
Output:
true
Example-4: This example checks the truthyness or falsyness of a given object.
<script>
var n1;
n1 = !!{
articles: 70
};
document.write(n1);
</script>
|
Output:
true