Not not: cos’è questo operatore in JavaScript?

di Lorenzo Neri
0 commento 83 visualizzazioni

Not Not è un operatore molto strano in JavaScript e può sembrare parecchio strano, in questo articolo scopriamo che cos’è e a che cosa serve.

Ovviamente, “not not” non è questo:

noot noot GIF

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 test, 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!

Potrebbero interessarti

Lascia un commento

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più