Logika yra bet kurios programos pagrindas, todėl norėsite įvaldyti loginius operatorius, kad galėtumėte efektyviai struktūrizuoti kodą.
Loginiai operatoriai leidžia atlikti logines operacijas su loginėmis reikšmėmis. Jie leidžia derinti, paneigti arba palyginti logines reikšmes ir priimti loginius sprendimus kode, remiantis rezultatu.
Naršykite įvairius loginius operatorius, kuriuos palaiko „JavaScript“, įskaitant ES6 Nullish sujungimo operatorių.
Loginis IR (&&) operatorius
Operatorius AND (&&) yra loginis operatorius, kuris grąžina tiesa jei abu operandai vertina į tiesa ir klaidinga kitaip.
Štai operatoriaus AND sintaksė:
a && b
Štai naudojamas operatoriaus AND pavyzdys:
konst a = 5;
konst b = 10;
konst c = 15;konst rezultatas_1 = (a < b) && (b < c);
konsolė.log (rezultatas_1); // tiesa
konst rezultatas_2 = (a > b) && (b < c);
konsolė.log (rezultatas_2); // netikras
Šiame pavyzdyje rezultatas_1 vertina į tiesa nes du operandai išraiškoje vertina į tiesa. Tačiau rezultatas_2 vertina į klaidinga nes pirmasis operandas (a > b) grąžina klaidinga.
Jei abu operandai nėra loginiai, „JavaScript“ bandys juos konvertuoti į logines reikšmes prieš įvertinant išraišką. Kad jas konvertuotų į loginius, „JavaScript“ pirmiausia įvertina, ar reikšmės teisingos, ar klaidingos.
„JavaScript“ laiko bet kokią vertę, kuri nėra aiškiai klaidinga, teisinga verte. Kai konvertuojami, jie įvertinami logiškai tiesa.
Tačiau tam tikros vertybės ir duomenų tipai JavaScript yra klaidingi, todėl kai „JavaScript“ juos konvertuoja, jie įvertina loginį klaidinga.
Klaidingos „JavaScript“ reikšmės yra šios:
- klaidinga
- nulinis
- neapibrėžtas
- NaN (Ne skaičius)
- 0
- BigInt (0n)
- Tuščia eilutė ("" arba '' arba ``)
- neapibrėžtas
Kai naudojate operatorių AND vertindami ne logines reikšmes, reiškinys iš karto grąžina pirmojo operando reikšmę, jei operandas klaidingas, neįvertinus antrojo. Šis elgesys vadinamas trumpuoju jungimu ir jį galite naudoti rašydami sąlyginius teiginius „JavaScript“..
Tačiau jei pirmasis operandas yra teisingas, išraiška vertina antrąjį operandą. Jei antrasis operandas yra teisingas, jis jį grąžina.
Pavyzdžiui:
konst a = 5;
konst b = 'Sveiki';
konst c = nulinis;konst rezultatas_1 = a && b;
konsolė.log (rezultatas_1); // "Sveiki"
konst rezultatas_2 = c && b;
konsolė.log (rezultatas_2); // null
Šiame pavyzdyje rezultatas_1 įvertina „Labas“, nes abu išraiškos operandai yra teisingi. Tačiau rezultatas_2 trumpieji jungimai ir grįžimai nulinis neįvertindamas antrojo operando.
Atminkite, kad jei operandų yra daugiau, operatorius AND toliau juos vertins, kol aptiks klaidingą reikšmę. Jei ji neranda klaidingos vertės, ji grąžina paskutinę tikrąją vertę, su kuria susiduria.
Loginis ARBA (||) operatorius
Operatorius OR (||) yra loginis operatorius, kuris grąžina tiesa jei ir tik vienas ar keli jo operandai yra tiesa. Tai tik grįžta klaidinga kai abu operandai yra klaidinga.
Štai operatoriaus OR sintaksė:
a || b
Štai naudojamas operatoriaus OR pavyzdys:
konst a = 5;
konst b = 10;
konst c = 15;konst rezultatas_1 = (a < b) || (b < c);
konsolė.log (rezultatas_1); // tiesakonst rezultatas_2 = (a > b) || (b < c);
konsolė.log (rezultatas_2); // tiesa
konst rezultatas_3 = (a > b) || (b > c);
konsolė.log (rezultatas_3); // netikras
Aukščiau pateiktame pavyzdyje rezultatas_1 vertina į tiesa nes abu operandai išraiškoje įvertina į tiesa. rezultatas_2 vertina į tiesa nes antrasis operandas įvertina į tiesa. rezultatas_3 vertina į klaidinga nes du operandai išraiškoje vertina į klaidinga.
Kai naudojate OR operatorių ne loginiuose kontekstuose, „JavaScript“ bando konvertuoti į logines reikšmes prieš įvertindama išraišką.
Įvertinus išraišką, jei pirmasis operandas yra teisingas, operatorius trumpai sujungia ir grąžina jį. Tačiau, jei jis klaidingas, jis pradeda vertinti kitą operandą, kol susidurs su tikru operandu. Jei išraiškoje nėra teisingų operandų, ji grąžina paskutinę klaidingą reikšmę.
Pavyzdžiui:
konst a = 5;
konst b = 'Sveiki';
konst c = nulinis;konst rezultatas_1 = a || b;
konsolė.log (rezultatas_1); // 5konst rezultatas_2 = c || b;
konsolė.log (rezultatas_2); // "Sveiki"
konst rezultatas_3 = c || " ";
konsolė.log (rezultatas_3); // " "
Aukščiau pateiktame pavyzdyje rezultatas_1 trumpieji jungimai ir grįžimai 5 nes tai tikra vertybė. rezultatas_2 grąžina „Labas“, nes tai pirmoji teisinga reikšmė, sutinkama reiškinyje. rezultatas_3 grąžina tuščią eilutę, nes tai paskutinė klaidinga išraiškos reikšmė.
Loginis NE (!) operatorius
Loginis NOT (!) operatorius yra unarinis operatorius, kuris grąžina priešingą savo operando loginę reikšmę.
Štai operatoriaus NOT sintaksė:
!x
Kur x yra loginė arba teisinga arba klaidinga reikšmė.
Štai naudojamas operatoriaus NOT pavyzdys:
konst a = 5;
konst b = '';
konst c = tiesa;konst rezultatas_1 = !a;
konsolė.log (rezultatas_1); // netikraskonst rezultatas_2 = !b;
konsolė.log (rezultatas_2); // tiesa
konst rezultatas_3 = !c;
konsolė.log (rezultatas_3); // netikras
Aukščiau pateiktame pavyzdyje operatorius NOT grąžina atvirkštinę loginių operandų reikšmę. Kai naudojate operatorių NOT ne loginiuose kontekstuose (rezultatas_1 & rezultatas_2), jis konvertuoja teisingas reikšmes į atvirkštinę reikšmę tiesa ir paverčia klaidingas reikšmes į atvirkštinę reikšmę klaidinga.
„Nullish Coalescing“ (??) operatorius
Nulinis sujungimo operatorius yra loginis operatorius, kuris įvertina du operandus ir grąžina pirmąjį operandą, jei jis nėra nulinis arba neapibrėžtas. Priešingu atveju jis grąžina antrąjį operandą.
Iš pirmo žvilgsnio nulinis sujungimo operatorius gali atrodyti identiškas loginiam ARBA (||) operatoriui, tačiau taip nėra. Pagrindinis skirtumas yra tas, kad operatorius ARBA grąžina dešinįjį operandą, jei kairysis operandas yra „bet kokia“ klaidinga reikšmė, ne tik nulinis arba neapibrėžtas.
Jame pateikiamas glaustas būdas pasirinkti numatytąją reikšmę susidūrus nulinis arba neapibrėžtas vertybes.
Štai nulinio sujungimo operatoriaus sintaksė:
x?? y
Štai naudojamas nulinio sujungimo operatoriaus pavyzdys:
konst vardas = nulinis;
konst defaultName = "Jonas Doe";konst rezultatas_1 = vardas?? defaultName;
konsolė.log (rezultatas_1); // "John Doe"konst amžius = 0;
konst defaultAge = 25;
konst rezultatas_2 = amžius?? defaultAge;
konsolė.log (rezultatas_2); // 0
Aukščiau pateiktame pavyzdyje rezultatas_1 grąžina „John Doe“, nes pirmasis operandas turėjo reikšmę nulinis. rezultatas_2 grįžta 0 nes, nors tai klaidinga vertė, ji nėra nei viena, nei kita nulinis nei neapibrėžtas.
Loginių operatorių naudojimas kode
Loginiai operatoriai dažniausiai naudojami sąlyginiams sakiniams rašyti, numatytosioms reikšmėms priskirti arba loginėms reikšmėms perjungti pagal sąlygas.
Naudodami šiuos loginius operatorius galite parašyti glaustesnį ir išraiškingesnį kodą, kuris tvarko skirtingus scenarijus, pagrįstus verčių tikrumu ar klaidingumu.