Logik er grundlaget for ethvert program, så du vil gerne mestre logiske operatorer for at strukturere din kode effektivt.
Logiske operatorer giver dig mulighed for at udføre logiske operationer på booleske værdier. De lader dig kombinere, negere eller sammenligne booleske værdier og træffe logiske beslutninger i din kode baseret på resultatet.
Udforsk de forskellige logiske operatorer, som JavaScript understøtter, inklusive ES6 Nullish-sammenlægningsoperatoren.
Den logiske AND (&&) operatør
AND (&&) operatoren er en logisk operator, der returnerer rigtigt hvis begge operander evaluerer til rigtigt og falsk Ellers.
Her er syntaksen for OG-operatoren:
a && b
Her er et eksempel på AND-operatoren i brug:
konst a = 5;
konst b = 10;
konst c = 15;konst result_1 = (a < b) && (b < c);
konsol.log (resultat_1); // rigtigt
konst result_2 = (a > b) && (b < c);
konsol.log (resultat_2); // falsk
I dette eksempel, resultat_1 vurderer til rigtigt fordi de to operander i udtrykket evaluerer til rigtigt. Imidlertid, resultat_2 vurderer til falsk fordi den første operand (a > b) vender tilbage falsk.
Hvis begge operander ikke er booleaner, JavaScript vil forsøge at konvertere dem til booleske værdier, før udtrykket evalueres. For at konvertere dem til booleans, evaluerer JavaScript først, om værdierne er sande eller falske.
JavaScript betragter enhver værdi, der ikke er eksplicit falsk, som en sand værdi. Når de konverteres, evalueres de til en boolsk værdi rigtigt.
Dog visse værdier og datatyper i JavaScript er falske, så når JavaScript konverterer dem, evalueres de til en boolesk værdi falsk.
De falske værdier i JavaScript er:
- falsk
- nul
- udefineret
- NaN (Ikke et nummer)
- 0
- BigInt (0n)
- Tom streng ("" eller '' eller ``)
- udefineret
Når du bruger AND-operatoren til at evaluere ikke-booleske værdier, returnerer udtrykket straks den første operandes værdi, hvis operanden er falsk uden at evaluere den anden. Denne adfærd er kendt som kortslutning, og du kan bruge den til at skrive betingede udsagn i JavaScript.
Men hvis den første operand er sand, fortsætter udtrykket med at evaluere den anden operand. Hvis den anden operand er sand, returnerer den den.
For eksempel:
konst a = 5;
konst b = 'Hej';
konst c = nul;konst resultat_1 = a && b;
konsol.log (resultat_1); // "Hej"
konst resultat_2 = c && b;
konsol.log (resultat_2); // nul
I dette eksempel, resultat_1 vurderer til "Hej", fordi begge operander i udtrykket er sande. Imidlertid, resultat_2 kortslutninger og afkast nul uden at vurdere den anden operand.
Bemærk, at hvis der er flere operander, vil AND-operatøren fortsætte med at evaluere dem, indtil den støder på en falsk værdi. Hvis den ikke støder på en falsk værdi, returnerer den den sidste sande værdi, den støder på.
Den logiske ELLER (||) operatør
Operatoren OR (||) er en logisk operator, der returnerer rigtigt hvis og kun hvis en eller flere af dens operander er rigtigt. Det vender kun tilbage falsk når begge operander er falsk.
Her er syntaksen for OR-operatoren:
en || b
Her er et eksempel på den OR-operator, der er i brug:
konst a = 5;
konst b = 10;
konst c = 15;konst resultat_1 = (a < b) || (b < c);
konsol.log (resultat_1); // rigtigtkonst resultat_2 = (a > b) || (b < c);
konsol.log (resultat_2); // rigtigt
konst resultat_3 = (a > b) || (b > c);
konsol.log (resultat_3); // falsk
I eksemplet ovenfor, resultat_1 vurderer til rigtigt fordi begge operander i udtrykket evaluerer til rigtigt. resultat_2 vurderer til rigtigt fordi den anden operand evaluerer til rigtigt. resultat_3 vurderer til falsk fordi de to operander i udtrykket evaluerer til falsk.
Når du bruger OR-operatoren i ikke-booleske sammenhænge, forsøger JavaScript at konvertere til booleske værdier, før udtrykket evalueres.
Når udtrykket evalueres, hvis den første operand er sand, kortslutter operatøren og returnerer den. Men hvis den er falsk, fortsætter den med at evaluere den næste operand, indtil den støder på en sand operand. Hvis der ikke er nogen sande operander i udtrykket, returnerer det den sidste falske værdi, det støder på.
For eksempel:
konst a = 5;
konst b = 'Hej';
konst c = nul;konst resultat_1 = en || b;
konsol.log (resultat_1); // 5konst resultat_2 = c || b;
konsol.log (resultat_2); // "Hej"
konst resultat_3 = c || " ";
konsol.log (resultat_3); // " "
I eksemplet ovenfor, resultat_1 kortslutninger og afkast 5 fordi det er en sand værdi. resultat_2 returnerer "Hej", fordi det er den første sande værdi, den støder på i udtrykket. resultat_3 returnerer en tom streng, fordi det er den sidste falske værdi i udtrykket.
Den logiske IKKE (!) operatør
Den logiske NOT (!) operator er en unær operator, der returnerer den modsatte booleske værdi af sin operand.
Her er syntaksen for NOT-operatoren:
!x
Hvor x er en boolsk eller en sand eller falsk værdi.
Her er et eksempel på NOT-operatoren i brug:
konst a = 5;
konst b = '';
konst c = rigtigt;konst resultat_1 = !a;
konsol.log (resultat_1); // falskkonst resultat_2 = !b;
konsol.log (resultat_2); // rigtigt
konst resultat_3 = !c;
konsol.log (resultat_3); // falsk
I eksemplet ovenfor returnerer NOT-operatoren den omvendte værdi af de boolske operander. Når du bruger NOT-operatoren i ikke-booleske sammenhænge (resultat_1 & resultat_2), den konverterer sande værdier til den omvendte værdi af rigtigt og konverterer de falske værdier til den omvendte værdi af falsk.
The Nullish Coalescing (??) Operatør
Nullish coalescing-operatoren er en logisk operator, der evaluerer to operander og returnerer den første operand, hvis den ikke er nul eller udefineret. Ellers returnerer den den anden operand.
Umiddelbart kan den nullish sammensmeltende operator virke identisk med den logiske OR (||) operator, men det er ikke tilfældet. Nøgleforskellen er, at ELLER-operatøren returnerer operanden til højre, hvis den venstre operande er "en hvilken som helst" falsk værdi, ikke kun nul eller udefineret.
Det giver en kortfattet måde at vælge en standardværdi på, når du støder på nul eller udefineret værdier.
Her er syntaksen for nullish coalescing-operatoren:
x?? y
Her er et eksempel på den nullish coalescerende operatør i brug:
konst navn = nul;
konst defaultName = "John Doe";konst resultat_1 = navn?? defaultName;
konsol.log (resultat_1); // "John Doe"konst alder = 0;
konst defaultAlder = 25;
konst resultat_2 = alder?? defaultAlder;
konsol.log (resultat_2); // 0
I eksemplet ovenfor, resultat_1 returnerer "John Doe", fordi den første operand havde en værdi på nul. resultat_2 vender tilbage 0 fordi selvom det er en falsk værdi, er det ingen af delene nul heller ikke udefineret.
Brug af logiske operatører i din kode
Logiske operatorer bruges almindeligvis til at skrive betingede sætninger, tildele standardværdier eller skifte booleske værdier baseret på betingelser.
Ved at bruge disse logiske operatorer kan du skrive mere kortfattet og udtryksfuld kode, der håndterer forskellige scenarier baseret på værdiernes sandhed eller falskhed.