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

Converts Object to boolean. If it was falsey (e.g. 0, null, undefined, etc.), it will be false, otherwise, true.

!object  // inverted boolean
!!object // non inverted boolean so true boolean representation

So !! is not an operator, it’s just the ! operator twice.

It may be simpler to do:

Boolean(object) // boolean

Real World Example “Test IE version”:

const isIE8 = !! navigator.userAgent.match(/MSIE 8.0/);  
console.log(isIE8); // returns true or false 

If you ⇒

console.log(navigator.userAgent.match(/MSIE 8.0/));  
// returns either an Array or null  

But if you ⇒

console.log(!!navigator.userAgent.match(/MSIE 8.0/));  
// returns either true or false

Leave a Comment