
JS Quiz: Vero o Falso? Teoria sulle stringhe
No, non stiamo parlando della composizione fisica della materia! Con questo articolo inizia una serie di approfondimenti su ciรฒ che รจ “vero” e ciรฒ che รจ “falso” in JavaScript. Il linguaggio piรน usato al mondo infatti ha dei comportamenti poco intuitivi che rischiano di confondere e creare errori di programmazione.
Tanto per incuriosirvi, eccovi il primo:
Come giร saprete, una stringa vuota corrisponde a FALSE. Ma come mai l’espressione (“ciao”) corrisponde a TRUE mentre (“ciao”==true) a FALSE? “ciao” non viene forse interpretato proprio come TRUE? Oltretutto non sto neanche usando l’operatore “===”, quindi il diverso tipo degli operandi non dovrebbe essere rilevante…
Il punto รจ che bisogna non bisogna considerare i singoli operandi bensรฌ il risultato dell’espressione nella sua interezza! Proviamo a riscrivere il codice in un altro modo:
Ecco, cosรฌ il concetto รจ un po’ piรน chiaro, ma i motivi che stanno dietro a questo strano comportamento si possono trovare soltanto nella specifica ECMASCRIPT:
- “ciao” corrisponde a TRUE perchรจ il risultato di un’espressione costituita soltanto da una stringa รจ FALSE se la stringa รจ vuota (la sua lunghezza รจ zero), altrimenti รจ TRUE.
- “ciao” รจ diverso da TRUE perchรจ l’operatore “==” in caso di confronto tra booleano e stringa converte quest’ultima in numero e lo confronta con i valori numerici di TRUE e FALSE ovvero 1 e 0. Una stringa non numerica e non vuota perรฒ viene convertita in NaN (“ciao” * 1 -> NaN), che รจ diverso da 1.
A presto per una nuova puntata di JS Quiz!
Tag:false, giorgiobeggiora, javascript, jsquiz, true
