Nullish Coalescing Operatøren i JavaScript
Denne artikkelen forklarer Nullish Coalescing Operatøren i JavaScript.
YouTube Video
Nullish Coalescing Operatøren i JavaScript
I JavaScript evaluerer Nullish Coalescing Operatøren (??
) om en verdi er null
eller undefined
og returnerer en annen standardverdi i så fall. Det ligner på den ofte brukte logiske ELLER-operatøren (||
), men skiller seg ut ved at den spesialiserer seg på null
og undefined
.
Den logiske OR-operatøren returnerer høyre verdi hvis venstre verdi er falsy
, mens den nullaktige sammenslåingsoperatøren kun returnerer høyre verdi når venstre verdi er null
eller undefined
. Denne funksjonen tillater korrekt håndtering av verdier som 0
og tomme strenger (""
).
Grunnleggende Syntax
1let result = value ?? defaultValue;
value
er verdien som blir sjekket.defaultValue
er verdien som returneres nårvalue
ernull
ellerundefined
.
Eksempler på bruk av Nullish Coalescing Operatøren
Det følgende eksemplet implementerer en prosess for å returnere en standardverdi i tilfelle null
eller undefined
.
1let name = null;
2let defaultName = "Anonymous";
3
4// If name is null or undefined, 'Anonymous' is returned
5let displayName = name ?? defaultName;
6console.log(displayName); // "Anonymous"
I denne koden, siden name
er null
, returneres verdien av defaultName
, "Anonymous"
. Hvis name
er en verdi annet enn null
eller undefined
, returneres den verdien.
Forskjeller med den logiske ELLER-operatøren
Den nullaktige sammenslåingsoperatøren ligner på den logiske OR-operatøren, men har en viktig forskjell. Den logiske OR-operatøren sjekker for 'falske' verdier (false
, 0
, NaN
, ""
, null
, undefined
, osv.), mens den nullaktige sammenslåingsoperatøren sjekker kun etter null
og undefined
.
Eksempel på logisk ELLER-operatør:
1let count = 0;
2let defaultCount = 10;
3
4// Since count is falsy (0), defaultCount is returned
5let result = count || defaultCount;
6console.log(result); // 10
Eksempel på Nullish Coalescing Operatør:
1let count = 0;
2let defaultCount = 10;
3
4// Since count is neither null nor undefined, count is returned as is
5let result = count ?? defaultCount;
6console.log(result); // 0
På denne måten beholder den nullaktige sammenslåingsoperatøren gyldige verdier som 0
og tomme strenger (""
) og returnerer en standardverdi kun når det er nødvendig. Siden den logiske OR-operatøren behandler disse verdiene som falsy
og returnerer standardverdien, er det viktig å velge riktig operatør avhengig av brukstilfellet.
Eksempel på bruk i kombinasjon:
Den nullaktige sammenslåingsoperatøren kan også kombineres med andre logiske operatører, men forsiktighet er nødvendig når du gjør dette.
1let a = null;
2let b = 0;
3let c = false;
4
5// SyntaxError
6let result = a ?? b || c;
- For eksempel, når den brukes sammen med den logiske OR-operatøren (
||
) eller den logiske OG-operatøren (&&
), bør parenteser brukes for å tydeliggjøre rekkefølgen på operasjonene.
1let a = null;
2let b = 0;
3let c = false;
4
5let result = (a ?? b) || c;
6console.log(result); // false
- I dette eksemplet evalueres
a ?? b
først, og sidena
ernull
, returneresb
. Deretter evalueresb || c
, og sidenb
er falsk, returneres til sluttc
.
Tilfeller hvor den nullaktige sammenslåingsoperatøren er nyttig
Følgende er tilfeller hvor den nullaktige sammenslåingsoperatøren er nyttig.
- Standardverdier for skjemaer Dette kan brukes i situasjoner hvor en standardverdi er satt for skjemainndatafelt når brukeren ikke fyller inn noe.
1let userAge = null;
2let defaultAge = 18;
3let age = userAge ?? defaultAge;
4console.log(age); // 18
- Håndtering av API-svar
Fallback-behandling kan utføres når verdien er
null
ellerundefined
i svar fra API-et.
1let apiResponse = {
2 title: "New Article",
3 description: null
4};
5
6let title = apiResponse.title ?? "Untitled";
7let description = apiResponse.description ?? "No description available";
8console.log(title); // "New Article"
9console.log(description); // "No description available"
Sammendrag
Den nullaktige sammenslåingsoperatøren (??
) er svært nyttig for å initialisere data og håndtere API-responser, da den returnerer en standardverdi når den støter på null
eller undefined
. Spesielt er det et bedre valg enn den tradisjonelle logiske OR-operatøren (||
) når du vil håndtere falsy
verdier som 0
eller tomme strenger på riktig måte.
Om den nullaktige sammenkoblings-tilordningsoperatoren (??=)
Oversikt
I JavaScript har den nullaktige sammenkoblings-tilordningsoperatoren ??=
blitt introdusert for effektivt å tilordne en ny verdi til variabler som har null
eller undefined
. Denne operatoren er en praktisk snarvei for å tilordne en verdi til en variabel bare hvis en bestemt verdi er null
eller undefined
.
Grunnleggende bruk
Den nullaktige sammenslåingstildelingsoperatøren fungerer som følger:.
- Hvis en variabel er
null
ellerundefined
, tilordner den verdien på høyre side. - Hvis variabelen verken er
null
ellerundefined
, gjør den ingenting og beholder den nåværende verdien.
Syntaks
Den grunnleggende syntaksen for nullaktig sammenslåingstildelingsoperatør er som følger:.
1x ??= y;
y
blir tilordnet tilx
hvisx
ernull
ellerundefined
.- Hvis
x
allerede har en verdi (ikkenull
ellerundefined
), vil verdien tilx
ikke bli endret.
Eksempel
La oss se på et grunnleggende eksempel på den null-koaliserende tilordningsoperatoren.
1let userName = null;
2let defaultName = "Guest";
3
4// Since userName is null, defaultName is assigned
5userName ??= defaultName;
6
7console.log(userName); // "Guest"
- I denne koden, siden
userName
ernull
, blir verdien tildefaultName
tilordnet.
Her er et eksempel der verdien verken er null
eller undefined
.
1let userName = "Alice";
2let defaultName = "Guest";
3
4// Since userName is "Alice", nothing is assigned
5userName ??= defaultName;
6
7console.log(userName); // "Alice"
- I dette tilfellet, siden
"Alice"
allerede er satt foruserName
, blir det ingen tilordning.
Sammenligning med andre tilordningsoperatorer
JavaScript har også flere andre tilordningsoperatorer. Spesielt er forskjellen med den logiske ELLER-tilordningsoperatoren (||=
) viktig.
1let value = 0;
2value ||= 10; // Assign 10 if value is falsy
3console.log(value); // 10
Den logiske OR-tildelingsoperatøren tildeler en verdi selv når falsy
verdier som false
, 0
eller en tom streng (""
) oppstår, mens den nullaktige sammenslåingstildelingsoperatøren bare opererer når verdien er null
eller undefined
.
1let value = 0;
2value ??= 10;
3// Since value is neither null nor undefined,
4// nothing is assigned
5console.log(value); // 0
Siden den nullaktige sammenslåingstildelingsoperatøren kun opererer på null
eller undefined
, er den svært nyttig når du vil beholde verdier som 0
eller false
.
Virkelige brukstilfeller
Et praktisk bruksområde for operatoren for nullsammenkobling kan være som følger:.
-
Sette standardverdier
Det er nyttig for å sette standardverdier når brukerinput eller API-responser kan være
null
ellerundefined
.
1let userSettings = {
2 theme: null,
3 notifications: true
4};
5
6// Since theme is null, "light" is assigned
7userSettings.theme ??= "light";
8
9console.log(userSettings.theme); // "light"
-
Håndtering av valgfrie parametere
Det kan også brukes til å utføre standardhandlinger når funksjonsargumenter ikke er spesifisert.
1function greet(name) {
2 name ??= "Guest";
3 console.log(`Hello, ${name}!`);
4}
5
6greet(); // "Hello, Guest!"
7greet("Alice"); // "Hello, Alice!"
Sammendrag
Den nullaktige sammenslåingstildelingsoperatøren (??=
) tildeler kun en verdi når venstre verdi er null
eller undefined
, noe som gjør koden mer kortfattet og bidrar til å forhindre utilsiktede tildelinger. Spesielt når man arbeider med "falsy" verdier som 0
eller false
, kan den være mer passende enn den tradisjonelle logiske OR-operatøren (||=
).
Ved å bruke denne operatoren kan du lage mer robust og lesbar kode.
Du kan følge med på artikkelen ovenfor ved å bruke Visual Studio Code på vår YouTube-kanal. Vennligst sjekk ut YouTube-kanalen.