Corsi on-line

Differenza tra undefined e null in JavaScript

JavaScript è un linguaggio molto completo, talmente completo da presentare alcuni costrutti sintattici apparentemente simili ma concettualmente anche notevolmente diversi; in questo post verranno analizzate le differenze esistenti tra undefined e null, due entità che se non interpretate in modo univoco potrebbero essere utilizzate in sostituzione l’una dell’altra, generando così eccezioni e comportamenti inattesi.

javascript_logoA tal proposito è possibile sottolineare innanzitutto che undefined viene impiegato per rappresentare il fatto che una variabile non è stata dichiarata; quest’ultima, inoltre, potrebbe essere stata dichiarata ma non ancora assegnata ad un valore specifico. null è invece un’assegnazione di valore che significa “nessun valore”.

Dal punto di vista delle modalità secondo le quali Javascript lavora con tali entità si può sostenere che il linguaggio imposta le variabili non assegnate associando loro un valore predefinito (default value) per undefined, un valore invece non verrà mai impostato da JavaScript su null, dovrà essere quindi lo sviluppatore a stabilire che una variabile non dovrà avere un valore.

Il fatto che tra i due costrutti esistano delle differenze definite nativamente in JavaScript può essere dimostrato grazie all’impiego degli operatori; si ipotizzi per esempio di sottoporre una variabile ad un controllo di identità:

typeof var === "undefined"
var === null

In questo modo sapremo se una variabile è undefined o null, ma bisognerà tenere presente che l’operatore di uguaglianza (“==“) considera undefined e null uguali, restituendo TRUE:

null == undefined

mentre lo stesso non accadrà utilizzando il già citato operatore di identità (“===“) che invece restituirà FALSE:

null === undefined

Si ricordi inoltre che entrambi sono dei costrutti primitivi falsi dal punto di vista booleano, tale caratteristica però non li rende intercambiabili.

Post correlati
I più letti del mese
Tematiche