Logika jest podstawą każdego programu, więc będziesz chciał opanować operatory logiczne, aby wydajnie uporządkować swój kod.

Operatory logiczne umożliwiają wykonywanie operacji logicznych na wartościach boolowskich. Pozwalają łączyć, negować lub porównywać wartości logiczne i podejmować logiczne decyzje w kodzie na podstawie wyniku.

Zapoznaj się z różnymi operatorami logicznymi obsługiwanymi przez JavaScript, w tym operatorem łączenia Nullish z ES6.

Operator logiczny AND (&&).

Operator AND (&&) jest operatorem logicznym, który zwraca PRAWDA jeśli oba operandy oceniają na PRAWDA I FAŁSZ W przeciwnym razie.

Oto składnia operatora AND:

a && b

Oto przykład używanego operatora AND:

konst = 5;
konst b = 10;
konst do = 15;

konst wynik_1 = (a < b) && (b < c);
konsola.log (wynik_1); // PRAWDA

konst wynik_2 = (a > b) && (b < c);
konsola.log (wynik_2); // FAŁSZ

w tym przykładzie wynik_1 ocenia na PRAWDA ponieważ dwa operandy w wyrażeniu mają wartość PRAWDA. Jednakże, wynik_2 ocenia na FAŁSZ ponieważ pierwszy argument (a > b) zwroty FAŁSZ.

instagram viewer

Jeśli oba operandy nie są wartościami boolowskimi, JavaScript spróbuje je przekonwertować na wartości logiczne przed obliczeniem wyrażenia. Aby przekonwertować je na wartości logiczne, JavaScript najpierw ocenia, czy wartości są prawdziwe, czy fałszywe.

JavaScript uważa każdą wartość, która nie jest wyraźnie fałszywa, za wartość prawdziwą. Po przekonwertowaniu oceniają na wartość logiczną PRAWDA.

Jednak pewne wartości i typy danych w JavaScript są fałszywe, więc kiedy JavaScript je konwertuje, zwracają wartość logiczną FAŁSZ.

Fałszywe wartości w JavaScript to:

  • FAŁSZ
  • zero
  • nieokreślony
  • NaN (nie liczba)
  • 0
  • BigInt (0n)
  • Pusta struna ("" Lub '' Lub ``)
  • nieokreślony

Gdy używasz operatora AND do obliczania wartości innych niż logiczne, wyrażenie natychmiast zwraca wartość pierwszego operandu, jeśli jest on fałszywy, bez obliczania drugiego. To zachowanie jest znane jako zwarcie i można go używać do pisania instrukcje warunkowe w JavaScript.

Jeśli jednak pierwszy operand jest prawdziwy, wyrażenie przechodzi do oceny drugiego operandu. Jeśli drugi operand jest prawdziwy, zwraca go.

Na przykład:

konst = 5;
konst b = 'Cześć';
konst do = zero;

konst wynik_1 = a && b;
konsola.log (wynik_1); // "Cześć"

konst wynik_2 = c && b;
konsola.log (wynik_2); // zero

w tym przykładzie wynik_1 ma wartość „Hello”, ponieważ oba operandy w wyrażeniu są zgodne z prawdą. Jednakże, wynik_2 zwarcia i powroty zero bez oceny drugiego operandu.

Zauważ, że jeśli operandów jest więcej, operator AND będzie je oceniał, dopóki nie napotka fałszywej wartości. Jeśli nie napotka fałszywej wartości, zwraca ostatnią napotkaną prawdziwą wartość.

Operator logiczny LUB (||).

Operator OR (||) jest operatorem logicznym, który zwraca PRAWDA wtedy i tylko wtedy, gdy jeden lub więcej z jego argumentów jest PRAWDA. Tylko powraca FAŁSZ gdy oba operandy są FAŁSZ.

Oto składnia operatora OR:

|| B

Oto przykład używanego operatora OR:

konst = 5;
konst b = 10;
konst do = 15;

konst wynik_1 = (a < b) || (b konsola.log (wynik_1); // PRAWDA

konst wynik_2 = (a > b) || (b konsola.log (wynik_2); // PRAWDA

konst wynik_3 = (a > b) || (b > c);
konsola.log (wynik_3); // FAŁSZ

W powyższym przykładzie wynik_1 ocenia na PRAWDA ponieważ oba operandy w wyrażeniu oceniają na PRAWDA. wynik_2 ocenia na PRAWDA ponieważ drugi operand ma wartość PRAWDA. wynik_3 ocenia na FAŁSZ ponieważ dwa operandy w wyrażeniu mają wartość FAŁSZ.

Kiedy używasz operatora OR w kontekstach innych niż logiczne, JavaScript próbuje przekonwertować na wartości logiczne przed obliczeniem wyrażenia.

Kiedy wyrażenie jest obliczane, jeśli pierwszy operand jest prawdziwy, operator powoduje zwarcie i zwraca go. Jeśli jednak jest fałszywy, przechodzi do oceny następnego operandu, dopóki nie napotka prawdziwego operandu. Jeśli w wyrażeniu nie ma prawdziwych operandów, zwraca ostatnią napotkaną wartość fałszywą.

Na przykład:

konst = 5;
konst b = 'Cześć';
konst do = zero;

konst wynik_1 = a || B;
konsola.log (wynik_1); // 5

konst wynik_2 = c || B;
konsola.log (wynik_2); // "Cześć"

konst wynik_3 = c || " ";
konsola.log (wynik_3); // " "

W powyższym przykładzie wynik_1 zwarcia i powroty 5 ponieważ jest to prawdziwa wartość. wynik_2 zwraca „Hello”, ponieważ jest to pierwsza prawdziwa wartość, jaką napotka w wyrażeniu. wynik_3 zwraca pusty łańcuch, ponieważ jest to ostatnia fałszywa wartość w wyrażeniu.

Operator logiczny NOT (!).

Operator logiczny NOT (!) jest operatorem jednoargumentowym, który zwraca przeciwną wartość logiczną swojego operandu.

Oto składnia operatora NOT:

!X

Gdzie X jest wartością logiczną lub wartością prawdziwą lub fałszywą.

Oto przykład użycia operatora NOT:

konst = 5;
konst b = '';
konst do = PRAWDA;

konst wynik_1 = !a;
konsola.log (wynik_1); // FAŁSZ

konst wynik_2 = !b;
konsola.log (wynik_2); // PRAWDA

konst wynik_3 = !c;
konsola.log (wynik_3); // FAŁSZ

W powyższym przykładzie operator NOT zwraca wartość odwrotną do operandów boolowskich. Gdy używasz operatora NOT w kontekstach innych niż boolowskie (wynik_1 & wynik_2), konwertuje prawdziwe wartości na wartość odwrotną PRAWDA i konwertuje fałszywe wartości na wartość odwrotną FAŁSZ.

Operator zerowego łączenia (??).

Nullish koalescencyjny operator jest operatorem logicznym, który ocenia dwa operandy i zwraca pierwszy operand, jeśli nie jest zero Lub nieokreślony. W przeciwnym razie zwraca drugi operand.

Na pierwszy rzut oka nullish operator koalescencyjny może wydawać się identyczny z operatorem logicznym OR (||), ale tak nie jest. Kluczowa różnica polega na tym, że operator OR zwraca prawy operand, jeśli lewy operand jest „dowolną” wartością fałszywą, nie tylko zero Lub nieokreślony.

Zapewnia zwięzły sposób wyboru wartości domyślnej podczas napotkania zero Lub nieokreślony wartości.

Oto składnia nullish operatora łączenia:

X?? y

Oto przykład używanego operatora łączenia zerowego:

konst imię = zero;
konst nazwa domyślna = "Nieznany z nazwiska";

konst wynik_1 = nazwa?? nazwa domyślna;
konsola.log (wynik_1); // "Nieznany z nazwiska"

konst wiek = 0;
konst domyślny wiek = 25;

konst wynik_2 = wiek?? domyślny Wiek;
konsola.log (wynik_2); // 0

W powyższym przykładzie wynik_1 zwraca „John Doe”, ponieważ pierwszy operand miał wartość zero. wynik_2 zwroty 0 ponieważ chociaż jest to wartość fałszywa, nie jest żadną z nich zero ani nieokreślony.

Używanie operatorów logicznych w kodzie

Operatory logiczne są powszechnie używane do pisania instrukcji warunkowych, przypisywania wartości domyślnych lub przełączania wartości boolowskich na podstawie warunków.

Korzystając z tych operatorów logicznych, możesz pisać bardziej zwięzły i wyrazisty kod, który obsługuje różne scenariusze w oparciu o prawdziwość lub fałszywość wartości.