Nullish coalescing con ??
Fornisca valori predefiniti solo per null e undefined.
Nullish coalescing con ?? è una lezione JavaScript Academy gratuita su CoddyKit. Questa è la lezione 2 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.
Fornire valori predefiniti
Spesso è utile avere un valore di fallback quando manca un valore. L'operatore di coalescenza nullish offre un modo chiaro per fornire valori predefiniti solo quando necessario.
const name = undefined;
console.log(name ?? "Guest"); // "Guest"L'operatore ??
L'operatore del doppio punto interrogativo restituisce il valore a destra solo quando il lato sinistro è null o undefined.
console.log(null ?? "fallback"); // "fallback"
console.log(undefined ?? "fallback"); // "fallback"
console.log("hi" ?? "fallback"); // "hi"Perché non usare ||
L'OR logico || ricorre al valore di fallback per qualsiasi valore falsy, inclusi 0, "" e false, cosa spesso errata con i dati reali.
console.log(0 || 10); // 10 (probably unwanted)
console.log(0 ?? 10); // 0 (keeps the real value)Caso della stringa vuota
Con ||, una stringa vuota intenzionale viene sostituita; con ??, invece, viene mantenuta perché "" non è nullish.
const note = "";
console.log(note || "none"); // "none"
console.log(note ?? "none"); // ""false viene mantenuto
Un valore false reale sopravvive a ??, ma verrebbe sovrascritto da ||.
const enabled = false;
console.log(enabled ?? true); // false
console.log(enabled || true); // trueLeggere la configurazione in sicurezza
?? è ideale per le impostazioni in cui 0 o un valore vuoto sono scelte valide che l'utente potrebbe selezionare intenzionalmente.
function getVolume(settings) {
return settings.volume ?? 50;
}
console.log(getVolume({ volume: 0 })); // 0Funziona con le variabili
Funziona con qualsiasi espressione e restituisce il primo operando che non è nullish.
let cached = null;
const value = cached ?? computeValue();
function computeValue() { return 99; }
console.log(value); // 99Valutazione con cortocircuito
Come || e &&, ?? usa la valutazione con cortocircuito: se il lato sinistro non è nullish, il lato destro non viene mai valutato.
function side() { console.log("called"); return 1; }
const x = "ready" ?? side(); // side() never runs
console.log(x);Non si può combinare direttamente con && o ||
Combinare ?? con && o || senza parentesi causa un errore di sintassi, per evitare ambiguità.
const a = true, b = null;
// const c = a || b ?? 1; // SyntaxError
const c = (a || b) ?? 1;
console.log(c);Parametri predefiniti delle funzioni e ??
I parametri predefiniti si applicano solo quando un argomento è undefined. ?? gestisce anche null passato esplicitamente.
function greet(name = "Guest") { return "Hi " + name; }
console.log(greet(null)); // "Hi null"
function greet2(name) { return "Hi " + (name ?? "Guest"); }
console.log(greet2(null)); // "Hi Guest"Quando scegliere l'uno o l'altro
Usi ?? quando 0, "" o false sono valori validi che devono essere mantenuti. Usi || solo quando qualsiasi valore falsy deve attivare il fallback.
const retries = 0;
console.log(retries ?? 3); // 0 keptVerifica rapida
Confronti gli operatori.
Riepilogo
L'operatore ?? restituisce il lato destro solo quando il lato sinistro è null o undefined, mantenendo 0, "" e false. Questo lo rende più sicuro di || per fornire valori predefiniti con dati reali. Usa il cortocircuito e non può essere combinato con &&/|| senza parentesi.
Domande Frequenti
La lezione «Nullish coalescing con ??» è gratuita?
Sì — il testo completo di «Nullish coalescing con ??» è 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 «Nullish coalescing con ??»?
Fornisca valori predefiniti solo per null e undefined. 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 2 di 4.
Quanto tempo richiede la lezione «Nullish coalescing con ??»?
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
- Chaining opzionale con l'operatore ?.
- Nullish coalescing con ??
- Combinare ?. e ??
- Chiamate opzionali e accesso tramite indice