0Pricing
JavaScript Academy · Lezione

Chaining opzionale con l'operatore ?.

Acceda in sicurezza a proprietà profondamente annidate.

Chaining opzionale con l'operatore ?. è una lezione JavaScript Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento JavaScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso JavaScript Academy include 4 lezioni in totale.

Il problema

Leggere una proprietà di qualcosa che è undefined o null genera un TypeError. L'optional chaining consente di leggere in sicurezza i valori annidati.

const user = {};
console.log(user.profile && user.profile.name);

L'operatore ?.

L'operatore di optional chaining ?. interrompe l'operazione e restituisce undefined se il valore alla sua sinistra è null o undefined, invece di generare un errore.

const user = {};
console.log(user.profile?.name); // undefined, no error

Leggere proprietà annidate in profondità

È possibile concatenare diversi passaggi con ?. per accedere a strutture profonde senza dover aggiungere controlli manuali a ogni livello.

const data = { user: { address: { city: "Paris" } } };
console.log(data.user?.address?.city); // "Paris"

Interruzione anticipata

Se un collegamento della catena è nullish, l'intera espressione si interrompe e restituisce undefined; il resto non viene valutato.

const data = { user: null };
console.log(data.user?.address?.city); // undefined

Si attiva solo con valori nullish

?. interrompe l'operazione solo con null o undefined. Altri valori falsy, come 0 o "", sono valori reali e vengono utilizzati normalmente.

const obj = { count: 0 };
console.log(obj.count?.toString()); // "0"

Confronto con &&

Prima di ?., si concatenavano controlli con &&. L'optional chaining è più breve e chiaro per esprimere la stessa intenzione.

const u = { profile: { name: "Ada" } };
const a = u && u.profile && u.profile.name;
const b = u?.profile?.name;
console.log(a, b);

Concatenare dopo una chiamata

È possibile continuare la concatenazione dopo una chiamata a un metodo, accedendo in sicurezza alle proprietà del valore restituito.

const config = { get: () => ({ port: 8080 }) };
console.log(config.get()?.port); // 8080

Interruzione nel mezzo della catena

Se un collegamento intermedio è nullish, la valutazione si interrompe immediatamente, anche se i collegamenti successivi chiamerebbero altrimenti delle funzioni.

const obj = { a: null };
console.log(obj.a?.b.c.d); // undefined, never touches b/c/d

Non per le assegnazioni

L'optional chaining serve per leggere i valori. Non è possibile assegnare a una catena opzionale: a sinistra di = si verifica un errore di sintassi.

const o = { x: 1 };
// o?.x = 5; // SyntaxError
o.x = 5;
console.log(o.x);

Combinare con gli array

Funziona anche con l'accesso tra parentesi quadre, che verrà approfondito più avanti. La stessa sicurezza rispetto ai valori nullish continua ad applicarsi.

const state = { items: ["a", "b"] };
console.log(state.items?.[0]); // "a"

Evitarne l'uso eccessivo

Utilizzi ?. solo quando un valore può legittimamente mancare. Un uso eccessivo può nascondere i bug ignorando errori che invece è importante rilevare.

const order = { total: 42 };
console.log(order.total?.toFixed(2)); // "42.00"

Verifica rapida

Preveda il risultato.

Riepilogo

L'operatore ?. legge le proprietà in sicurezza: se il lato sinistro è null o undefined, restituisce undefined invece di generare un errore e interrompe il resto della catena. Si attiva solo con valori nullish, non con 0 o "", e non può essere utilizzato come destinazione di un'assegnazione.

Domande Frequenti

La lezione «Chaining opzionale con l'operatore ?.» è gratuita?

Sì — il testo completo di «Chaining opzionale con l'operatore ?.» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso JavaScript Academy, passa a CoddyKit PRO. Il corso JavaScript Academy include 4 lezioni in totale.

Cosa imparerò in «Chaining opzionale con l'operatore ?.»?

Acceda in sicurezza a proprietà profondamente annidate. Eserciti JavaScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare JavaScript Academy?

Non è richiesta alcuna esperienza precedente. JavaScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Chaining opzionale con l'operatore ?.»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione JavaScript Academy?

Sì. Ogni lezione JavaScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Chaining opzionale con l'operatore ?.
  2. Nullish coalescing con ??
  3. Combinare ?. e ??
  4. Chiamate opzionali e accesso tramite indice
← Torna a JavaScript Academy