JavaScript Academy · leksjon

Optional chaining med operatoren ?.

Få trygg tilgang til dypt nestede egenskaper.

Leksjon 1 av 413 trinn

Optional chaining med operatoren ?. er en gratis leksjon i JavaScript Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i JavaScript Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i JavaScript Academy inneholder totalt 4 leksjoner.

Problemet

Det oppstår en TypeError når De leser en egenskap på noe som er undefined eller null. Optional chaining lar Dem lese nestede verdier på en trygg måte.

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

?.-operatoren

Operatoren for optional chaining ?. stopper og returnerer undefined hvis verdien til venstre er null eller undefined, i stedet for å utløse en feil.

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

Lese dype egenskaper

Flere ?.-trinn kan kjedes sammen for å gå inn i dype strukturer uten manuelle kontroller på hvert nivå.

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

Kortslutning

Hvis et ledd i kjeden er nullish, kortslutter hele uttrykket til undefined, og resten evalueres ikke.

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

Bare nullish-verdier utløser det

?. kortslutter bare ved null eller undefined. Andre falsy-verdier, som 0 eller "", er reelle verdier og aksesseres på vanlig måte.

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

Sammenligning med &&

Før ?. kjedet man ofte sammen &&-kontroller. Optional chaining er kortere og tydeligere når det er dette som er hensikten.

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

Kjeding etter et kall

Det er mulig å fortsette kjedingen etter et metodekall og lese egenskaper på returverdien på en trygg måte.

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

Kortslutning midt i kjeden

Hvis et mellomledd er nullish, stopper evalueringen umiddelbart, selv om senere ledd ellers ville ha kalt funksjoner.

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

Ikke for tilordning

Optional chaining brukes til lesing. Det er ikke mulig å tilordne en verdi til en optional chain; dette er en syntaksfeil på venstresiden av =.

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

Kombinere med arrayer

Det fungerer også med tilgang ved hjelp av klammeparenteser, som gjennomgås senere. Den samme nullish-sikkerheten gjelder.

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

Unngå overbruk

Bruk ?. bare der en verdi med rette kan mangle. Overdreven bruk kan skjule feil ved å undertrykke feil som faktisk bør oppdages.

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

Kort kontroll

Forutsi resultatet.

Oppsummering

Operatoren ?. leser egenskaper på en trygg måte: Hvis venstresiden er null eller undefined, returneres undefined i stedet for at det oppstår en feil, og resten av kjeden kortsluttes. Bare nullish-verdier utløser dette, ikke 0 eller "", og operatoren kan ikke brukes som mål for en tilordning.

Gratis å komme i gang

Lær deg JavaScript med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
59
Leksjoner
200

Ofte stilte spørsmål

Er leksjonen «Optional chaining med operatoren ?.» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien JavaScript Academy, inkludert «Optional chaining med operatoren ?.», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i JavaScript Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Optional chaining med operatoren ?.»?

Få trygg tilgang til dypt nestede egenskaper. Du øver på JavaScript Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med JavaScript Academy?

Ingen tidligere erfaring er nødvendig. JavaScript Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Optional chaining med operatoren ?.»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne JavaScript Academy-leksjonen?

Ja. Alle JavaScript Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Optional chaining med operatoren ?.
  2. Nullish coalescing med ??
  3. Kombinere ?. og ??
  4. Valgfrie kall og indeksaksess
← Tilbake til JavaScript Academy