What is the !! (not not) operator in JavaScript?

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.

filter_none

edit
close

play_arrow

link
brightness_4
code

<script>
    // Write Javascript code here
    var n1;
    /* checking truthyness of
    the boolean value true. */
    n1 = !!true;
    document.write(n1);
</script>

chevron_right


Output:

true

Example-2: This example checks the falsyness of the boolean value false.

filter_none

edit
close

play_arrow

link
brightness_4
code

<script>
    // Write Javascript code here
    var n1;
    // checking falsyness of the boolean value false. 
    n1 = !!false;
    document.write(n1);
</script>

chevron_right


Output:

false

Example-3: This example checks the truthyness or falsyness of a given string.

filter_none

edit
close

play_arrow

link
brightness_4
code

<script>
    // Write Javascript code here
    var n1;
    // checking the truthyness or falsyness of a given string.
    n1 = !!"Javascript programming";
    document.write(n1);
</script>

chevron_right


Output:

true

Example-4: This example checks the truthyness or falsyness of a given object.

filter_none

edit
close

play_arrow

link
brightness_4
code

<script>
    // Write Javascript code here
    var n1;
    // checking the truthyness 
    // or falsyness of a given object.
    n1 = !!{
        articles: 70
    };
    document.write(n1);
</script>

chevron_right


Output:

true


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.