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?
objectundefinedprimitivestring