Loģika ir jebkuras programmas pamats, tāpēc vēlēsities apgūt loģiskos operatorus, lai efektīvi strukturētu savu kodu.

Loģiskie operatori ļauj veikt loģiskās darbības ar Būla vērtībām. Tie ļauj kombinēt, noliegt vai salīdzināt Būla vērtības un pieņemt loģiskus lēmumus savā kodā, pamatojoties uz rezultātu.

Izpētiet dažādus loģiskos operatorus, ko atbalsta JavaScript, tostarp ES6 Nullish apvienošanas operatoru.

Loģiskais UN (&&) operators

UN (&&) operators ir loģisks operators, kas atgriež taisnība ja abi operandi novērtē to taisnība un viltus citādi.

Lūk, operatora UN sintakse:

a && b

Šeit ir izmantotā operatora UN piemērs:

konst a = 5;
konst b = 10;
konst c = 15;

konst rezultāts_1 = (a < b) && (b < c);
konsole.log (rezultāts_1); // taisnība

konst rezultāts_2 = (a > b) && (b < c);
konsole.log (rezultāts_2); // viltus

Šajā piemērā rezultāts_1 novērtē uz taisnība jo divi operandi izteiksmē novērtē to taisnība. tomēr rezultāts_2 novērtē uz viltus jo pirmais operands (a > b) atgriežas viltus.

Ja abi operandi nav Būla vērtības,

instagram viewer
JavaScript mēģinās tos pārvērst Būla vērtībās pirms izteiksmes novērtēšanas. Lai tās pārvērstu Būla vērtībās, JavaScript vispirms novērtē, vai vērtības ir patiesas vai nepatiesas.

JavaScript jebkuru vērtību, kas nav nepārprotami nepatiesa, uzskata par patiesu vērtību. Pārveidojot, tie tiek novērtēti kā Būla vērtība taisnība.

Tomēr noteiktas vērtības un datu tipi JavaScript ir nepatiesi, tāpēc, kad JavaScript tos pārvērš, tie tiek novērtēti kā Būla vērtība viltus.

Nepatiesās JavaScript vērtības ir:

  • viltus
  • null
  • nenoteikts
  • NaN (nav cipars)
  • 0
  • BigInt (0n)
  • Tukša virkne ("" vai '' vai ``)
  • nenoteikts

Ja izmantojat operatoru UN, lai novērtētu nebūla vērtības, izteiksme nekavējoties atgriež pirmā operanda vērtību, ja operands ir nepatiess, nenovērtējot otro. Šo darbību sauc par īssavienojumu, un to var izmantot rakstīšanai nosacījuma paziņojumi JavaScript.

Tomēr, ja pirmais operands ir patiess, izteiksme turpinās, lai novērtētu otro operandu. Ja otrais operands ir patiess, tas to atgriež.

Piemēram:

konst a = 5;
konst b = 'Sveiki';
konst c = null;

konst rezultāts_1 = a && b;
konsole.log (rezultāts_1); // "Sveiki"

konst rezultāts_2 = c && b;
konsole.log (rezultāts_2); // null

Šajā piemērā rezultāts_1 novērtē uz “Sveiki”, jo abi izteiksmē esošie operandi ir patiesi. tomēr rezultāts_2 īssavienojumi un atgriešana null nevērtējot otro operandu.

Ņemiet vērā: ja ir vairāk operandu, operators UN turpinās tos novērtēt, līdz konstatēs nepatiesu vērtību. Ja tas nesaskaras ar nepatiesu vērtību, tas atgriež pēdējo patieso vērtību, ar kuru tas saskaras.

Loģiskais VAI (||) operators

Operators VAI (||) ir loģisks operators, kas atgriež taisnība tad un tikai tad, ja viens vai vairāki tā operandi ir taisnība. Tas tikai atgriežas viltus kad abi operandi ir viltus.

Lūk, OR operatora sintakse:

a || b

Šeit ir izmantotā operatora VAI piemērs:

konst a = 5;
konst b = 10;
konst c = 15;

konst rezultāts_1 = (a < b) || (b < c);
konsole.log (rezultāts_1); // taisnība

konst rezultāts_2 = (a > b) || (b < c);
konsole.log (rezultāts_2); // taisnība

konst rezultāts_3 = (a > b) || (b > c);
konsole.log (rezultāts_3); // viltus

Iepriekš minētajā piemērā rezultāts_1 novērtē uz taisnība jo abi operandi izteiksmē novērtē to taisnība. rezultāts_2 novērtē uz taisnība jo otrais operands novērtē to taisnība. rezultāts_3 novērtē uz viltus jo divi operandi izteiksmē novērtē to viltus.

Ja izmantojat operatoru VAI kontekstā, kas nav būla, JavaScript mēģina pārvērst Būla vērtībās pirms izteiksmes novērtēšanas.

Novērtējot izteiksmi, ja pirmais operands ir patiess, operators veic īssavienojumu un atgriež to. Tomēr, ja tas ir nepatiess, tas turpina novērtēt nākamo operandu, līdz tiek atrasts patiess operands. Ja izteiksmē nav patiesu operandu, tā atgriež pēdējo nepatieso vērtību, ar kuru tā saskaras.

Piemēram:

konst a = 5;
konst b = 'Sveiki';
konst c = null;

konst rezultāts_1 = a || b;
konsole.log (rezultāts_1); // 5

konst rezultāts_2 = c || b;
konsole.log (rezultāts_2); // "Sveiki"

konst rezultāts_3 = c || " ";
konsole.log (rezultāts_3); // " "

Iepriekš minētajā piemērā rezultāts_1 īssavienojumi un atgriešana 5 jo tā ir patiesa vērtība. rezultāts_2 atgriež “Sveiki”, jo tā ir pirmā patiesā vērtība, ko tas sastopas izteiksmē. rezultāts_3 atgriež tukšu virkni, jo tā ir pēdējā nepatiesā vērtība izteiksmē.

Loģiskais NAV (!) operators

Loģiskais NOT (!) operators ir unārs operators, kas atgriež operandam pretēju Būla vērtību.

Šeit ir operatora NOT sintakse:

!x

Kur x ir Būla vai patiesa vai nepatiesa vērtība.

Šeit ir izmantotā operatora NOT piemērs:

konst a = 5;
konst b = '';
konst c = taisnība;

konst rezultāts_1 = !a;
konsole.log (rezultāts_1); // viltus

konst rezultāts_2 = !b;
konsole.log (rezultāts_2); // taisnība

konst rezultāts_3 = !c;
konsole.log (rezultāts_3); // viltus

Iepriekš minētajā piemērā operators NOT atgriež Būla operandu apgriezto vērtību. Ja izmantojat operatoru NOT nebūla kontekstos (rezultāts_1 & rezultāts_2), tas pārvērš patiesās vērtības apgrieztās vērtībās taisnība un pārvērš nepatiesās vērtības par apgriezto vērtību viltus.

The Nullish Coalescing (??) operators

Nulles apvienošanas operators ir loģisks operators, kas novērtē divus operandus un atgriež pirmo operandu, ja tas nav null vai nenoteikts. Pretējā gadījumā tas atgriež otro operandu.

No pirmā acu uzmetiena nulles apvienošanas operators var šķist identisks loģiskajam VAI (||) operatoram, taču tas tā nav. Galvenā atšķirība ir tāda, ka operators VAI atgriež labās puses operandu, ja kreisais operands ir “jebkura” nepatiesa vērtība, ne tikai null vai nenoteikts.

Tas nodrošina īsu veidu, kā izvēlēties noklusējuma vērtību, saskaroties null vai nenoteikts vērtības.

Šeit ir nulles apvienošanas operatora sintakse:

x?? y

Šeit ir izmantotā nullish apvienošanas operatora piemērs:

konst vārds = null;
konst defaultName = "Džons Dū";

konst rezultāts_1 = vārds?? defaultName;
konsole.log (rezultāts_1); // "Džons Doe"

konst vecums = 0;
konst noklusējumaVecums = 25;

konst rezultāts_2 = vecums?? noklusējumaVecums;
konsole.log (rezultāts_2); // 0

Iepriekš minētajā piemērā rezultāts_1 atgriež “John Doe”, jo pirmajam operandam bija vērtība null. rezultāts_2 atgriežas 0 jo, lai gan tā ir nepatiesa vērtība, tā nav neviena no tām null nedz nenoteikts.

Loģisko operatoru izmantošana kodā

Loģiskos operatorus parasti izmanto, lai rakstītu nosacījumu paziņojumus, piešķirtu noklusējuma vērtības vai pārslēgtu Būla vērtības, pamatojoties uz nosacījumiem.

Izmantojot šos loģiskos operatorus, varat uzrakstīt kodolīgāku un izteiksmīgāku kodu, kas apstrādā dažādus scenārijus, pamatojoties uz vērtību patiesumu vai nepatiesību.