Nullish coalescing med ??
Ange standardvärden endast för null och undefined.
Nullish coalescing med ?? är en gratis lektion i JavaScript Academy på CoddyKit. Detta är lektion 2 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för JavaScript Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i JavaScript Academy innehåller totalt 4 lektioner.
Ange standardvärden
Ofta vill man ha ett reservvärde när ett värde saknas. Nullish coalescing-operatorn ger ett tydligt sätt att ange standardvärden endast när det behövs.
const name = undefined;
console.log(name ?? "Guest"); // "Guest"Operatorn ??
Operatorn med två frågetecken returnerar värdet på höger sida endast när vänster sida är null eller undefined.
console.log(null ?? "fallback"); // "fallback"
console.log(undefined ?? "fallback"); // "fallback"
console.log("hi" ?? "fallback"); // "hi"Varför inte använda ||
Den logiska OR-operatorn || använder alla falsy-värden som reservvärde, inklusive 0, "" och false, vilket ofta blir fel för verkliga data.
console.log(0 || 10); // 10 (probably unwanted)
console.log(0 ?? 10); // 0 (keeps the real value)Fallet med en tom sträng
Med || ersätts en avsiktligt tom sträng, medan den behålls med ?? eftersom "" inte är nullish.
const note = "";
console.log(note || "none"); // "none"
console.log(note ?? "none"); // ""false bevaras
Ett faktiskt false-värde överlever ??, men skulle ersättas av ||.
const enabled = false;
console.log(enabled ?? true); // false
console.log(enabled || true); // trueLäsa konfiguration säkert
?? passar utmärkt för inställningar där 0 eller ett tomt värde är giltiga alternativ som användaren avsiktligt kan välja.
function getVolume(settings) {
return settings.volume ?? 50;
}
console.log(getVolume({ volume: 0 })); // 0Fungerar med variabler
Det fungerar med godtyckliga uttryck och returnerar det första operandelementet som inte är nullish.
let cached = null;
const value = cached ?? computeValue();
function computeValue() { return 99; }
console.log(value); // 99Kortslutande utvärdering
Precis som || och && använder ?? kortslutande utvärdering: om vänster sida inte är nullish utvärderas höger sida aldrig.
function side() { console.log("called"); return 1; }
const x = "ready" ?? side(); // side() never runs
console.log(x);Kan inte blandas direkt med && eller ||
Om ?? blandas med && eller || utan parenteser uppstår ett syntaxfel, för att undvika tvetydighet.
const a = true, b = null;
// const c = a || b ?? 1; // SyntaxError
const c = (a || b) ?? 1;
console.log(c);Standardparametrar i funktioner jämfört med ??
Standardparametrar används endast när ett argument är undefined. ?? hanterar även null som skickas in uttryckligen.
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"När ska man välja vilken
Använd ?? när 0, "" eller false är giltiga värden som måste bevaras. Använd || endast när alla falsy-värden ska ersättas med ett reservvärde.
const retries = 0;
console.log(retries ?? 3); // 0 keptSnabb kontroll
Jämför operatorerna.
Sammanfattning
Operatorn ?? returnerar värdet på höger sida endast när vänster sida är null eller undefined, och bevarar 0, "" och false. Därför är den säkrare än || när standardvärden används för verkliga data. Den använder kortslutande utvärdering och kan inte blandas med &&/|| utan parenteser.
Lär dig JavaScript med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 59
- Lektioner
- 200
Vanliga frågor
Är lektionen ”Nullish coalescing med ??” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen JavaScript Academy, inklusive ”Nullish coalescing med ??”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i JavaScript Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Nullish coalescing med ??”?
Ange standardvärden endast för null och undefined. Ni övar på JavaScript Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig JavaScript Academy?
Du behöver inga förkunskaper. Utbildningen i JavaScript Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Nullish coalescing med ??”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här JavaScript Academy-lektionen?
Ja. Varje JavaScript Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Optional chaining med operatorn ?.
- Nullish coalescing med ??
- Kombinera ?. och ??
- Valfria anrop och indexåtkomst