Not Not è un operatore molto strano in JavaScript e può sembrare parecchio strano, in questo articolo scopriamo che cos’è e a che cosa serve.
Ciao mi chiamo Lorenzo Neri e sono un informatico: realizzo contenuti per aiutare le persone a padroneggiare l’arte del nuovo millennio, ovvero l’informatica!
Ovviamente, “not not” non è questo:

Ma qualcosa come questo :
!!Object
Che cosa fa not not in JavaScript
Converte gli oggetti e le variabili di tipo Object in boolean.
In altre parole, se la variabile o l’oggetto in questione ha un valore tipo 0, null, undefined, “”, con l’utilizzo di questo operatore viene “castato” come falso, diversamente come vero.
Facciamo un esempio completo:
const isIE8 = !! navigator.userAgent.match(/MSIE 8.0/);
console.log(isIE8);
Con questo informatico, verifichiamo se la versione di Internet Explorer è la “8”: la costante isIE8 stampata a video farà apparire “true” oppure “false”.
Approfondiamo l’esempio:
console.log(navigator.userAgent.match(/MSIE 8.0/));
In questo caso, apparirà a console un array oppure null, ovvero il valore vero e proprio della variabile in questione.
Ma invece se facessimo:
console.log(!!navigator.userAgent.match(/MSIE 8.0/));
Vedremo stampato a console “true” oppure “false” come dicevo all’inizio.
La teoria dietro l’operatore not not
È giusto approfondire e allargare l’esempio a una teoria completa.
!! ovvero l’operatore “not not” determinata la “verità” legata a ciò che non non è un valore
Ok, una supercazzola clamorosa, ma in fondo lo sappiamo bene che JavaScript non è esente da assurdità 😀
Cerchiamo di capirlo meglio:
- La verità è che “true” non non è true: vero.
- La verità è che “false” non non è false: falso.
Detto in altre parole, ciò che vogliamo determinare nel confronto è la “verità” sul valore di un riferimento, non sul valore del riferimento stesso!
Potrebbe capitare di voler conoscere la verità su un valore, anche se prevediamo che il valore sia falso (false) oppure che il valore non sia di tipo boolean.
Tutto questo, può in realtà tornare molto comodo perché spesso e volentieri, ben sapendo che JavaScript non ha una tipizzazione troppo funzionante, possiamo trovarci al grosso dilemma:
Ma siamo davvero sicuri che quella variabile contenga davvero quel valore?
Pertanto, ecco che cos’è not not, questo operatore strano in JavaScript e a che cosa può servire!