Differenze tra indefinito vs null

In JavaScript, le variabili sono come un telecomando che controlla effettivamente l'oggetto. Se il telecomando non è programmato per controllare nessuno degli oggetti, può essere etichettato come Non definito. D'altra parte, se il telecomando è programmato ma non fa nulla, può essere assegnato a Null. Null è un valore di assegnazione, può essere assegnato a una variabile come rappresentazione di nessun valore. Undefined è un tipo stesso mentre null è un oggetto. Quindi Undefined è un tipo speciale mentre Null è un oggetto in JavaScript.

Sotto lo snippet di codice JavaScript, l'output è indefinito.

var x;

console.log (x);

ð indefinito

Se qualcuno controlla il tipo di null, stampa l'output come "oggetto" come mostrato nello snippet di codice JavaScript seguente:

console.log (tipo di null);

ð oggetto

Quindi, possiamo dire che Undefined significa una variabile che è stata dichiarata, ma il valore della variabile non è stato ancora definito. Undefined è di tipo "undefined", che può essere verificato dal seguente frammento di codice JavaScript:

test var;

Console.log (tipo di test);

ð indefinito

Si può anche dichiarare una variabile e quindi assegnargli "non definito" come di seguito:

var test = non definito;

Console.log (test);

ð indefinito

Le variabili non assegnate vengono inizializzate da JavaScript con un valore predefinito non definito, mentre JavaScript non imposta mai un valore su null automaticamente, deve essere eseguito a livello di codice.

Confronto testa a testa tra indefinito vs null

Di seguito è riportato il confronto tra i primi 8 tra Javascript indefinito e null

Differenze chiave tra Javascript indefinito e null

Sia Undefined vs Null sono scelte popolari nel mercato; parliamo di alcune delle principali differenze tra Undefined vs Null:

  1. Non definito indica che una variabile è stata dichiarata ma non è stato ancora assegnato un valore.
  2. "Null" è un valore di assegnazione che significa "nessun valore".
  3. "Indefinito" e "null" sono entrambi primitivi.
  4. "Undefined" è di tipo undefined.
  5. "Null" è di tipo oggetto.
  6. JavaScript non imposta mai un valore su "null", viene utilizzato dai programmatori per indicare che un "var" non ha valore.
  7. JavaScript imposta una variabile non assegnata con un valore predefinito "non definito".
  8. "Undefined" non è un valore valido in JSON (JavaScript Object Notation) mentre "null" è un valore valido in JSON.
  9. Si può verificare se una variabile non è definita usando: tipo di variabile === "non definito"
  10. Modo per verificare se una variabile è nulla usando: variabile === null
  11. L'operatore di uguaglianza li tratterà come uguali mentre l'operatore di identità non li tratterà come uguali. null === undefined // false null == undefined // true
  12. Il valore "null" rappresenta l'assenza intenzionale di qualsiasi valore di oggetto. È uno dei valori primitivi di JavaScript.
  13. Null è scritto con un letterale: "null". Non è un identificatore per la proprietà di un oggetto globale, come può essere "indefinito". "Null" indica la mancanza di identificazione, significa che una variabile punta a nessun oggetto.
  14. "Undefined" è una variabile globale che JavaScript crea in fase di esecuzione.
  15. Quando si esegue una conversione aritmetica su "null", il valore determinato è 0, questa conversione può essere verificata: var v1 = 3 + null; console.log (v1); // 3
  16. "Undefined" non esegue la conversione aritmetica come fa "null", se proviamo ad aggiungerla a un numero, otterrai un errore NaN (Not-a-Number).

Tabella comparativa Undefined vs Null

Di seguito è riportato l'elenco dei punti, Descrivi il confronto tra Javascript non definito vs Null

BASE del confronto tra indefinito e nullNon definitoNullo
Definizionela variabile è stata dichiarata ma non è stato ancora assegnato un valorevalore di assegnazione che significa "nessun valore"
genereNon definitoOggetto
JSONNon validoValido
NaturaVariabile dichiarata ma non ancora assegnataRappresenta l'assenza intenzionale di valore dell'oggetto
Dai un'occhiatatypeof variabileName === “undefined”variabileName === null
AritmeticaErrore Not-a-number (NaN)trattato come valore zero
ConfrontoL'operatore di uguaglianza tornerà veroL'operatore di identità restituirà false
IdentifierPuò essere un identificatore per una proprietà dell'oggetto globaleNon un identificatore per una proprietà dell'oggetto globale

Conclusione - Undefined vs Null

Il più delle volte, le persone fraintendono la differenza tra Undefined vs Null. Se la distinzione tra Undefined e Null rimane poco chiara, può causare problemi in alcuni casi di test.

Si può dire che una variabile è "indefinita" se viene dichiarata ma non le è stato dato alcun valore. D'altra parte, "null" è un valore che può essere assegnato a una variabile e rappresenta "nessun valore". Pertanto "undefined" è un tipo variabile, dove "null" è un valore oggetto.

"Null" è considerato un segnaposto per nulla. Significa che abbiamo assegnato intenzionalmente un valore a una variabile e quindi assumendo il valore di nulla a una variabile. Quando si verifica la presenza di valori null o indefiniti, è necessario essere consapevoli degli operatori di uguaglianza (==) e identità (===), poiché i primi eseguono la conversione del tipo.

typeof null // object

tipo di indefinito // indefinito

null === undefined // false

null == undefined // true

null == null // true

null === null // true

! null // true

isNaN (1 + null) // false

isNaN (1 + undefined) // true

Quindi, quando si tratta della differenza di tipo, "null" è un oggetto con un valore valido senza proprietà, non è mutabile ed esiste sempre una singola istanza nel sistema. Si può verificare la natura di "null", utilizzando l'operatore "type of". L'uso di questo operatore fornirà l'output come "oggetto". Se utilizziamo l'operatore "tipo di" su un oggetto che appartiene a tutti i criteri di un elenco non definito, riceveremo il tipo di oggetto come "non definito".

Un'altra differenza importante tra Undefined vs Null può essere conclusa con la conversione in tipi primitivi. Il modo in cui Undefined vs Null viene convertito in tipi primitivi è l'area chiave per la differenziazione. Durante l'esecuzione della conversione aritmetica su "null", il valore determinato è zero. Tuttavia, "non definito" non comporta tale conversione. Se proviamo ad aggiungere "undefined" a un numero, otterrai un errore Not-a-number.

L'uso di "null" può essere molto utile nello scenario del mondo reale. Ad esempio: alcune persone non hanno un secondo nome. Quindi, in questo caso, è meglio assegnare un valore null a una variabile di secondo nome in un oggetto persona. Se qualcuno accede alla variabile di secondo nome nell'oggetto persona e ha un valore "non definito". Quindi non c'è modo di accertare che lo sviluppatore abbia dimenticato di inizializzare questa variabile o che non avesse alcun valore. Se viene assegnato come null, significa che un utente può facilmente dedurre che la variabile di secondo nome non ha alcun valore.

Quindi, per riassumere, "null" e "indefinito" hanno significati diversi. Mentre "null" è una parola chiave speciale che indica un'assenza di valore, "undefined" significa "non esiste". Ci sono situazioni in cui aiuta a differenziare “un valore di null” e “nessun valore”. Quando si inviano aggiornamenti per un elenco, "null" può significare, sostituire questo campo con "null" e un indefinito può significare "non toccare". Quando si hanno a che fare con parametri di funzione predefiniti: indefinito significa "usa valore predefinito" e null significa "usa null". Avere Undefined vs Null come due cose distinte in JavaScript può essere onestamente doloroso, tuttavia, se uno è uno sviluppatore JavaScript, potrebbe piacerlo.

Articolo raccomandato

Questa è stata una guida alla differenza principale tra Undefined vs Null. Qui discutiamo anche le differenze chiave Javascript Undefined vs Null con infografica e tabella comparativa. Puoi anche dare un'occhiata ai seguenti articoli -

  1. Vai vs Java-Differenze utili
  2. Django vs WordPress Differenze
  3. JavaScript vs C #
  4. XML vs HTML - Qual è il migliore
  5. Java Performance vs Python

Categoria: