null e non definito

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