JavaScript consente di indicare in vari modi l'assenza di un valore. Questa pagina
descrive i due modi più comuni: i tipi di dati null
e undefined
.
null
La parola chiave null
rappresenta un'assenza di valore definita intenzionalmente. null
è di tipo primitivo, anche se l'operatore typeof
restituisce che null
è un oggetto.
Si tratta di un errore che ha comportato
dalla prima versione di JavaScript ed è stato lasciato intenzionalmente
senza indirizzo per evitare di danneggiare il comportamento previsto sul web.
typeof null
> object
Puoi definire una variabile come null
aspettandosi che rifletta un valore assegnato
punto in uno script o un valore
esplicitamente assente. Puoi anche assegnare null
a un riferimento esistente per cancellare un valore precedente.
undefined
undefined
è un valore primitivo assegnato a variabili
dichiarati o al valore risultante di un'operazione
non restituisce un valore significativo. Ad esempio, questo può accadere quando dichiari
una funzione nella console per gli sviluppatori di un browser:
function myFunction() {}
> undefined
Una funzione restituisce esplicitamente undefined
quando la relativa istruzione return
non restituisce alcun valore.
(function() {
return;
}());
> undefined
Confronto tra null
e undefined
Sebbene undefined
e null
presentino una sovrapposizione funzionale, hanno
per diversi scopi. In senso stretto, null
rappresenta un valore
definita intenzionalmente come "vuota", e undefined
rappresenta la mancanza di valori assegnati.
null
e undefined
sono assolutamente uguali, ma non strettamente uguali.
L'operatore di uguaglianza sciolta costringe gli operandi di tipi diversi a valori booleani
in modo che null
e undefined
siano entrambi false
. L'operatore di uguaglianza rigida
considera la disuguaglianza degli operandi di tipi di dati diversi.
null == undefined
> true
null === undefined
> false
A differenza della parola chiave prenotata null
, undefined
è una proprietà del
oggetto globale. Questo era un progetto
presa di decisione all'inizio dello sviluppo di JavaScript, consentendo ai browser
sovrascrive completamente undefined
. Nei browser moderni è comunque possibile utilizzare
undefined
come identificatore in ambiti non globali, eseguendo l'override del relativo valore all'interno
l'ambito della dichiarazione. Usare mai undefined
come identificatore. it
può causare comportamenti imprevisti e confondere i futuri gestori di
il tuo codebase.
Verifica le tue conoscenze
Che cosa restituisce typeof null
?
object
undefined
primitive
string