Perché JavaScript ha molti modi per rappresentare valori sconosciuti
Il caso semplice: null
Null è il valore nullo classico. Viene generalmente utilizzato per indicare che un valore è facoltativo, ma non è stato fornito. Molti coder sarebbero felici se fosse l’unico valore indefinito in un linguaggio. Tuttavia, JavaScript non si ferma qui.
undefined come valore mancante
undefined indica che il valore non esiste effettivamente. Ad esempio, in TypeScript:
interface Arguments {
nullable_value : number | null
optional_value? : number | null
}
nullable_value è obbligatorio e può essere null. optional_value è facoltativo e può non esistere. Questa distinzione è utile ma può diventare confusa a causa del confronto lasco:
const a = { nullable_value : null , optional_value : null , }
const b = { nullable_value : null , }
In a.optional_value === null. Invece, in b.optional_value === undefined.