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.
Example-2: This example checks the falsyness of the boolean value false.
Example-3: This example checks the truthyness or falsyness of a given string.
Example-4: This example checks the truthyness or falsyness of a given object.
- Why overriding both the global new operator and the class-specific operator is not ambiguous?
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.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.