We use the double bang operator (!!) to check if a value is `truthy` or `falsy`.
That means to check if a value is considered `true` or `false` by JavaScript.
We use it when we need a boolean value according to a non-boolean value,
for example if we need the value `false` if a string is empty, `true` otherwise.
str = "Double bang operator"; // not empty strings are considered true by JS
console.log(str == true); // false
console.log(!!str); // true
str = ""; // empty strings are considered false by JS
console.log(str == false); // true
console.log(!!str); // false
Truthy values :
- Objects : {} // even empty objects
- Arrays : [] // even empty Arrays
- Not empty strings : "Anything"
- Numbers other than 0 : 3.14
- Dates : new Date()
Falsy values :
- Empty strings : ""
- 0
- null
- undefined
- NaN
The double bang is said as (!!True) or (!(True)) means that the outcome will be
the opposite of what its supposed to be.
note: I am only 50% sure if its true its just something I read on a website.