Tutto su null in JavaScript

JavaScript ha 2 tipi di tipi: primitive (stringhe, booleani, numeri, simboli) e oggetti.

Gli oggetti sono strutture dati complesse. L’oggetto più semplice in JavaScript è l’oggetto semplice – una raccolta di chiavi e valori associati:

let myObject = { name: 'Eric Cartman'};

Ma ci sono situazioni in cui un oggetto non può essere creato. Per tali casi, JavaScript fornisce un valore speciale null — che indica un oggetto mancante.,

let myObject = null;

In questo post, potrete imparare tutto su null in JavaScript: il suo significato, come rileva la differenza tra null e undefined e perché l’uso null ampiamente crea manutenzione del codice di difficoltà.

1. Il concetto di null

La specifica JavaScript dice sunull:

null è un valore primitivo che rappresenta l’assenza intenzionale di qualsiasi valore oggetto.,

Se vedinull (assegnato a una variabile o restituito da una funzione), allora in quel punto avrebbe dovuto essere un oggetto, ma per qualche motivo, un oggetto non è stato creato.

Per esempio, la funzione greetObject() crea oggetti, ma può anche tornare null quando un oggetto non può essere creato:

Tuttavia, quando si richiama la funzione senza argomenti — greetObject() la funzione restituisce null., Restituire nullè ragionevole perché il parametrowho non ha valore e l’oggetto di saluto non può essere creato.

1.1 Analogia del mondo reale di null

Pensando a un’analogia del mondo reale, puoi immaginare una variabile come una scatola. Proprio come una variabile può contenere un oggetto, la scatola può contenere oggetti come una teiera.

Ma una volta che ricevi una scatola e la apri… e niente lì! Qualcuno ha fatto un errore e ti ha mandato una scatola vuota. La casella non contiene nulla o, dicendo diversamente, contiene un valorenull.

2., Come verificare la presenza di null

buon modo per controllare null è utilizzando l’operatore di uguaglianza rigorosa:

const missingObject = null;const existingObject = { message: 'Hello!' };missingObject === null; // => trueexistingObject === null; // => false

missingObject === null valuta true perché missingObject variabile contiene un null valore.

Se la variabile contiene un valore non nullo, come un oggetto, l’espressioneexistingObject === nullvalutafalse.

2.,1 null is falsy

null, alongside false, 0, '', undefined, NaN, is a falsy value. If a falsy value is encountered in conditionals, then JavaScript coerces falsy to false.

Boolean(null); // => falseif (null) { console.log('null is truthy');} else { console.log('null is falsy'); // logs 'null is falsy'}

2.2 typeof null

Interestingly, to what value type null evaluates to?,

typeof null; // => 'object'

Hm how come potrebbe il tipo di oggetto mancante valutare'object'? Risulta chetypoef null essendo'object' è stato un errore nella prima implementazione JavaScript.

Non utilizzare l’operatore typeof per rilevare un valore null. Come accennato in precedenza, utilizzare l’operatore di uguaglianza rigorosa myVar === null.,

Se si desidera verificare se una variabile contiene un oggetto utilizzando l’operatoretypeof, è necessario controllare anchenull:

3. La trappola di null

null potrebbe apparire, spesso inaspettatamente, in situazioni in cui ci si aspetta un oggetto. Quindi se si tenta di estrarre una proprietà da null, JavaScript genera un errore.,

usiamo di nuovo greetObject() funzione e si tenta di accedere message proprietà dell’oggetto restituito:

let who = '';greetObject(who).message; // throws "TypeError: greetObject() is null"

Perché who variabile è una stringa vuota, la funzione restituisce null. Quando si accede alla proprietàmessage danull, viene generato un errore TypeError.,

È possibile gestirenullutilizzando il concatenamento opzionale con coalescenza nullish:

let who = '';greetObject(who)?.message ?? 'Hello, Stranger!'; // => 'Hello, Stranger!'

o utilizzare 2 alternative descritte nella sezione successiva.

4. Alternative a null

Si è tentati di restituire null quando non è possibile costruire un oggetto. Ma questa pratica ha aspetti negativi.

Non appena null appare all’interno del tuo stack di esecuzione, devi sempre controllarlo.,

io cerco di evitare di tornare null a favore di:

  • la restituzione di un oggetto predefinito invece di null
  • generazione di un errore, invece di restituire null

ricordiamo che il greetObject() funzione che restituisce il saluto oggetti.

Invece di restituirenullquando manca l’argomento, è possibile restituire un oggetto predefinito:

o generare un errore:

Queste pratiche consentono di evitare di trattare connull.

5., null vs undefined

undefined è il valore di una variabile non inizializzata o di una proprietà oggetto.

Per esempio, se si dichiara una variabile senza assegnare un valore iniziale, l’accesso a tale variabile restituisce undefined:

let myVariable;myVariable; // => undefined

La differenza principale tra i due tag null e undefined che null rappresenta un oggetto mancante, mentre undefined rappresenta uno stato non inizializzato.,

The strict equality operator === distinguishes null from undefined:

null === undefined; // => false

While loose equality operator == considers null and undefined equal:

null == undefined; // => true

I use the loose equality operator to check whether a variable is null or undefined:

6., Riepilogo

null è un valore speciale in JavaScript che rappresenta un oggetto mancante.

L’operatore di uguaglianza rigorosa determina se una variabile è null: variable === null.

typoef l’operatore è utile per determinare il tipo di variabile (numero, stringa, booleano). Tuttavia, typeof è fuorviante nel caso di null: typeof null valuta 'object'.,

null e undefined sono in qualche modo equivalente, ancora, null rappresenta un oggetto mancante, mentre undefined stato non inizializzato.

Evitare se possibile di restituire null o impostare le variabili su null. Questa pratica porta alla diffusione di valori null e verifiche per null. Invece, provare a utilizzare oggetti con proprietà predefinite, o anche lanciare errori.

Avendo padroneggiatonull, perché non padroneggiareundefined?, Segui il mio post 7 Suggerimenti per gestire undefined in JavaScript.

Quale condizione si usa per verificarenull?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *