Qual è la differenza tra Null e Undefined in JavaScript?

Qual è la differenza tra Null e Undefined in JavaScript?

Questa guida esaminerà la differenza tra nullo e non definito valori in JavaScript. Conoscere la differenza tra questi due valori è importante per il debug e la creazione di codice privo di bug.



quanto può diventare calda la mia CPU?

Usa la console del tuo browser per seguire o prova gli esempi di codice discussi in questa guida.

Confronto tra uguaglianza di valori nulli e indefiniti

In JavaScript, nullo è un valore primitivo che viene utilizzato per indicare l'assenza intenzionale di un valore oggetto, mentre non definito è un valore primitivo che funge da segnaposto per una variabile a cui non è stato assegnato un valore.





Nullo e non definito i valori sono uguali se confrontati utilizzando l'operatore di uguaglianza JavaScript.

Utilizzare l'operatore di uguaglianza ( == ) per confrontare se nullo e non definito i valori sono uguali in JavaScript.



Apri la console del tuo browser e inserisci il seguente codice, quindi premi Accedere.

null == undefined

L'output dovrebbe darti qualcosa che assomiglia a questo, il valore booleano restituito di vero significa semplicemente che i due valori sono uguali.

Ulteriori informazioni: Come dichiarare le variabili in JavaScript

Confronto rigoroso di uguaglianza

JavaScript ha anche un operatore di identità ( === ), noto anche come operatore di uguaglianza rigorosa oltre all'operatore di uguaglianza ( == )

L'operatore di identità fa il possibile per verificare se il tipo sottostante dei valori confrontati è lo stesso. Ciò significa essenzialmente che anche se due valori sono uguali, potrebbero non essere identici o strettamente uguali se i loro tipi sottostanti sono diversi.

Per verificare l'uguaglianza rigorosa, utilizzare il segno di triplo uguale come di seguito.

null === undefined

Il risultato del comando sopra ti darà un valore booleano di falso , In altre parole, i due valori non sono identici anche se sono uguali.

Scoprire il tipo di nullo e indefinito

Usa la funzione JavaScript integrata tipo di() per scoprire il tipo sottostante di un valore. La funzione accetta un singolo parametro del valore di cui si desidera trovare il tipo.

Imparentato: L'ultimo cheat sheet di JavaScript

typeof(null)

Il valore null è di tipo oggetto come puoi vedere dall'output qui sotto.

Esecuzione di un test simile sul non definito il valore ti darà un risultato di non definito .

typeof(undefined)

Lavorare con i numeri

Per esplorare ulteriori differenze, esegui il test del numero su nullo e non definito valori. Se un valore è un numero, implica che possiamo eseguire operazioni numeriche su di esso.

Esistono due modi principali per verificare se un valore è un numero in JavaScript.

1. Utilizzando il isFinite () funzione: se il valore in prova è un numero, la funzione restituisce vero ; altrimenti ritorna falso .

2. Utilizzando il isNaN() funzione: se il valore in prova è un numero, allora restituisce falso ; altrimenti ritorna vero .

Nota : isNaN è l'abbreviazione di 'non è un numero'.

Per semplificare le cose, questa guida utilizzerà solo il isFinite () funzione per verificare se il valore è un numero, ma sentiti libero di provare anche il isNaN() funzione. Entrambe queste funzioni prendono come parametro il valore su cui si desidera eseguire il test del numero.

isFinite(null)

Il risultato è vero , significato nullo è un valore del tipo numero in JavaScript. Considerando che, effettuando lo stesso test su non definito ritorna falso .

isFinite(undefined)

Tipo coercizione

JavaScript è un linguaggio di digitazione vaga e per questo motivo, durante l'esecuzione di operazioni matematiche, JavaScript convertirà automaticamente il risultato nel tipo desiderato.

Sfortunatamente questa conversione automatica, comunemente chiamata coercizione di tipo, può portare con sé molte sorprese.

Esegui la seguente operazione numerica su nullo e non definito nella console del tuo browser.

1 + null 3 * null 1 + undefined 3 * undefined;

Come puoi vedere, puoi eseguire alcune operazioni numeriche sul nullo value perché è un numero che non contiene alcun valore. Pertanto, viene trattato come uno zero. Prendi nota che nullo non è uguale a zero in JavaScript, ma in qualche modo viene trattato così in questo caso.

Le operazioni numeriche sul non definito valore comporta la restituzione del NaN (Non un numero) valore. Se non trattato con attenzione, potresti riscontrare questo problema durante il runtime.

Evitare bug di runtime

Una buona comprensione di nullo e non definito valori è vitale per evitare bug di runtime nel codice di produzione. Bug relativi a non definito i valori possono essere difficili da eseguire il debug ed è meglio evitarli.

Prendi in considerazione l'utilizzo di TypeScript per codice fortemente tipizzato che viene compilato in JavaScript. In TypeScript il tuo codice viene controllato in fase di compilazione per ridurre al minimo i bug di runtime nel codice di produzione.

Condividere Condividere Tweet E-mail Argomenti correlati
  • Programmazione
  • JavaScript
  • Suggerimenti per la codifica
Circa l'autore Buono per andare(36 articoli pubblicati)

Mwiza sviluppa software di professione e scrive ampiamente su Linux e programmazione front-end. Alcuni dei suoi interessi includono storia, economia, politica e architettura d'impresa.

Altro da Mwiza Kumwenda

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti