Logika je temelj vsakega programa, zato boste želeli obvladati logične operatorje za učinkovito strukturiranje kode.

Logični operaterji vam omogočajo izvajanje logičnih operacij nad logičnimi vrednostmi. Omogočajo vam kombiniranje, negiranje ali primerjavo logičnih vrednosti in sprejemanje logičnih odločitev v vaši kodi na podlagi rezultata.

Raziščite različne logične operatorje, ki jih podpira JavaScript, vključno z operatorjem združevanja ES6 Nullish.

Operator logičnega IN (&&).

Operator IN (&&) je logični operator, ki vrne prav če oba operanda ovrednotita prav in lažno drugače.

Tukaj je sintaksa operatorja IN:

a && b

Tu je primer uporabljenega operatorja IN:

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

konst rezultat_1 = (a < b) && (b < c);
konzola.log (rezultat_1); // prav

konst rezultat_2 = (a > b) && (b < c);
konzola.log (rezultat_2); // napačno

V tem primeru rezultat_1 ocenjuje na prav ker sta dva operanda v izrazu ovrednotena na prav. vendar rezultat_2 ocenjuje na lažno ker prvi operand (a > b) vrne lažno.

instagram viewer

Če oba operanda nista logični vrednosti, JavaScript jih bo poskušal pretvoriti v logične vrednosti, preden ovrednotite izraz. Da jih pretvori v logične vrednosti, JavaScript najprej oceni, ali so vrednosti resnične ali lažne.

JavaScript vsako vrednost, ki ni eksplicitno lažna, obravnava kot resnično vrednost. Ko se pretvorijo, se ovrednotijo ​​v logično vrednost prav.

Vendar pa nekatere vrednote in podatkovne vrste v JavaScriptu so lažni, zato jih JavaScript pretvori v logično vrednost lažno.

Lažne vrednosti v JavaScriptu so:

  • lažno
  • nič
  • nedoločeno
  • NaN (Ni številka)
  • 0
  • BigInt (0n)
  • Prazen niz ("" oz '' oz ``)
  • nedoločeno

Ko uporabite operator AND za vrednotenje nelogičnih vrednosti, izraz takoj vrne vrednost prvega operanda, če je operand napačen, ne da bi ocenil drugega. To vedenje je znano kot kratek stik in ga lahko uporabite za pisanje pogojni stavki v JavaScriptu.

Če pa je prvi operand resničen, izraz nadaljuje z vrednotenjem drugega operanda. Če je drugi operand resničen, ga vrne.

Na primer:

konst a = 5;
konst b = 'Zdravo';
konst c = nič;

konst rezultat_1 = a && b;
konzola.log (rezultat_1); // "Zdravo"

konst rezultat_2 = c && b;
konzola.log (rezultat_2); // nič

V tem primeru rezultat_1 ovrednoti "Pozdravljeni", ker sta oba operanda v izrazu resnična. vendar rezultat_2 kratkih stikov in povratkov nič brez vrednotenja drugega operanda.

Upoštevajte, da če je operandov več, jih bo operator IN še naprej ocenjeval, dokler ne naleti na lažno vrednost. Če ne naleti na lažno vrednost, vrne zadnjo resnično vrednost, na katero naleti.

Operator logičnega ALI (||).

Operator ALI (||) je logični operator, ki vrne prav če in samo če je eden ali več njenih operandov prav. Samo vrne se lažno ko sta oba operanda lažno.

Tukaj je sintaksa operatorja OR:

a || b

Tu je primer uporabljenega operatorja ALI:

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

konst rezultat_1 = (a < b) || (b < c);
konzola.log (rezultat_1); // prav

konst rezultat_2 = (a > b) || (b < c);
konzola.log (rezultat_2); // prav

konst rezultat_3 = (a > b) || (b > c);
konzola.log (rezultat_3); // napačno

V zgornjem primeru rezultat_1 ocenjuje na prav ker oba operanda v izrazu ovrednotita prav. rezultat_2 ocenjuje na prav ker je drugi operand ocenjen na prav. rezultat_3 ocenjuje na lažno ker sta dva operanda v izrazu ovrednotena na lažno.

Ko uporabite operator OR v kontekstih, ki niso logični, JavaScript poskuša pretvoriti v logične vrednosti, preden ovrednoti izraz.

Ko je izraz ovrednoten, če je prvi operand resničen, operater sklene kratek stik in ga vrne. Če pa je napačen, nadaljuje z vrednotenjem naslednjega operanda, dokler ne naleti na resničnega operanda. Če v izrazu ni resničnih operandov, vrne zadnjo lažno vrednost, na katero naleti.

Na primer:

konst a = 5;
konst b = 'Zdravo';
konst c = nič;

konst rezultat_1 = a || b;
konzola.log (rezultat_1); // 5

konst rezultat_2 = c || b;
konzola.log (rezultat_2); // "Zdravo"

konst rezultat_3 = c || " ";
konzola.log (rezultat_3); // " "

V zgornjem primeru rezultat_1 kratkih stikov in povratkov 5 ker je resnična vrednost. rezultat_2 vrne »Hello«, ker je to prva resnična vrednost, ki jo sreča v izrazu. rezultat_3 vrne prazen niz, ker je to zadnja lažna vrednost v izrazu.

Operator logičnega NE (!).

Logični operator NE (!) je unarni operator, ki vrne nasprotno logično vrednost svojega operanda.

Tukaj je sintaksa operatorja NOT:

!x

Kje x je logična ali resnična ali lažna vrednost.

Tu je primer uporabljenega operaterja NOT:

konst a = 5;
konst b = '';
konst c = prav;

konst rezultat_1 = !a;
konzola.log (rezultat_1); // napačno

konst rezultat_2 = !b;
konzola.log (rezultat_2); // prav

konst rezultat_3 = !c;
konzola.log (rezultat_3); // napačno

V zgornjem primeru vrne operator NOT inverzno vrednost logičnih operandov. Ko uporabite operator NOT v kontekstih, ki niso logični (rezultat_1 & rezultat_2), pretvori prave vrednosti v inverzno vrednost prav in pretvori lažne vrednosti v inverzno vrednost lažno.

Operator Nullish Coalescing (??).

Operator ničelnega združevanja je logični operator, ki ovrednoti dva operanda in vrne prvi operand, če ni nič oz nedoločeno. V nasprotnem primeru vrne drugi operand.

Na prvi pogled se morda zdi, da je ničelni združevalni operator identičen logičnemu ALI (||), vendar ni tako. Ključna razlika je v tem, da operator OR vrne operand na desni strani, če je levi operand »katera koli« lažna vrednost, ne samo nič oz nedoločeno.

Zagotavlja jedrnat način izbire privzete vrednosti ob srečanju nič oz nedoločeno vrednote.

Tukaj je sintaksa ničelnega združevalnega operatorja:

x?? l

Tukaj je primer uporabljenega operatorja ničelnega združevanja:

konst ime = nič;
konst privzeto ime = "John Doe";

konst rezultat_1 = ime?? defaultName;
konzola.log (rezultat_1); // "Janez Doe"

konst starost = 0;
konst privzeta starost = 25;

konst rezultat_2 = starost?? defaultAge;
konzola.log (rezultat_2); // 0

V zgornjem primeru rezultat_1 vrne »John Doe«, ker je imel prvi operand vrednost nič. rezultat_2 vrača 0 ker čeprav je lažna vrednost, ni ne eno ne drugo nič niti nedoločeno.

Uporaba logičnih operatorjev v vaši kodi

Logični operatorji se običajno uporabljajo za pisanje pogojnih stavkov, dodeljevanje privzetih vrednosti ali preklapljanje logičnih vrednosti na podlagi pogojev.

Z uporabo teh logičnih operatorjev lahko napišete bolj jedrnato in ekspresivno kodo, ki obravnava različne scenarije na podlagi resničnosti ali lažnosti vrednosti.