Najnowsze tutoriale tworzenie stron internetowych
 

JavaScript Porównanie i Operatory logiczne


Porównanie i operatory logiczne są używane do testowania true lub false .


Operatory porównania

operatory porównania są stosowane w sprawozdaniu logicznych do określenia równości lub różnicę między zmiennymi lub wartości.

Biorąc pod uwagę, że x = 5 , poniższa tabela opisuje operatory porównania:

Operator Opis porównując zwroty Spróbuj
== równy x == 8false Spróbuj "
x == 5true Spróbuj "
x == "5"true Spróbuj "
=== równej wartości i równe typu x === 5true Spróbuj "
x === "5"false Spróbuj "
!= nie równe x != 8true Spróbuj "
!== nie jest równa wartości, czy też nie równa typu x !== 5false Spróbuj "
x !== "5"true Spróbuj "
x !== 8true Spróbuj "
> lepszy niż x > 8false Spróbuj "
< mniej niż x < 8true Spróbuj "
>= większe bądź równe x >= 8false Spróbuj "
<= mniejsza lub równa x <= 8true Spróbuj "

Jak może być używany

operatory porównania można stosować w instrukcjach warunkowych porównać wartości i podjąć działania w zależności od wyniku:

if (age < 18) text = "Too young";

Dowiesz się więcej na temat wykorzystania instrukcji warunkowych w następnym rozdziale tego podręcznika.


Operatory logiczne

operatory logiczne służą do określania logiki między zmiennymi lub wartości.

Biorąc pod uwagę, że x = 6 oraz y = 3 , poniższa tabela opisuje operatory logiczne:

Operator Opis Przykład Spróbuj
&&and (x < 10 && y > 1) is true Spróbuj "
||or(x == 5 || y == 5) is false Spróbuj "
!not !(x == y) is true Spróbuj "

Warunkowo (Ternary) Operator

JavaScript zawiera również operatora warunkowego, która przypisuje wartość do zmiennej opartej na jakimś stanie.

Składnia

variablename = ( condition ) ? value1 : value2  

Przykład

var voteable = (age < 18) ? "Too young":"Old enough";
Spróbuj sam "

Jeśli zmienna jest wartością wieku poniżej 18 lat, wartość zmiennej voteable będzie "zbyt młody", w przeciwnym wypadku wartość voteable będzie "dość stary".


Porównywanie różnych typów

Porównując dane z różnych typów może dać nieoczekiwane rezultaty.

Przy porównywaniu ciąg z numerem, JavaScript będzie przekonwertować ciąg na numer robiąc porównanie. Pusty ciąg konwertuje do 0. Ciąg nienumeryczny zamienia się NaN który jest zawsze fałszywe.

Walizka Wartość Próbować
2 < 12true Spróbuj "
2 < "12"true Spróbuj "
2 < "John"false Spróbuj "
2 > "John"false Spróbuj "
2 == "John"false Spróbuj "
"2" < "12"false Spróbuj "
"2" > "12"true Spróbuj "
"2" == "12"false Spróbuj "

Porównując dwóch łańcuchów, "2", będzie większa niż "12", ponieważ (alfabetycznie) 1 jest mniejsza niż 2.

W celu zapewnienia prawidłowego rezultatu, zmienne należy przekształcić do odpowiedniego typu przed porównaniem:

age = Number(age);
if (isNaN(age)) {
    voteable = "Error in input";
} else {
    voteable = (age < 18) ? "Too young" : "Old enough";
}
Spróbuj sam "

JavaScript Operatory bitowe

operatory bitowe działają na liczbach 32-bitowych.

Każdy argument numeryczny działanie przekształca się w 32-bitową liczbę.

Rezultatem jest przekształcany z powrotem do szeregu JavaScript.

Operator Opis Przykład Taki sam jak Wynik Dziesiętny
& AND x = 5 & 1 0101 & 0001 0001 1
| OR x = 5 | 1 0101 | 0001 0101 5
~ NOT x = ~ 5  ~0101 1010 10
^ XOR x = 5 ^ 1 0101 ^ 0001 0100 4
<< Left shift x = 5 << 1 0101 << 1 1010 10
>> Right shift x = 5 >> 1 0101 >> 1 0010 2

Powyższa tabela użytku 4 bity niepodpisane przykładów. Ale JavaScript wykorzystuje 32-bitową liczby.
Z tego powodu, w JavaScript, ~ 5 nie będzie powrotu 10. Powróci -6:
~ 00000000000000000000000000000101 powróci 11111111111111111111111111111010

Przykład

x = 5 & 1;

Wynik X:

1
Spróbuj sam "

Przykład

x = 5 | 1;

Wynik X:

5
Spróbuj sam "

Przykład

x = 5 >> 1;

Wynik X:

2
Spróbuj sam "

Przykład

x = 5 << 1;

Wynik X:

10
Spróbuj sam "

Przykład

x = ~ 5;

Wynik X:

-6
Spróbuj sam "

Sprawdź się z ćwiczeń!

Ćwiczenie 1 » Ćwiczenie 2» Ćwiczenie 3 » Ćwiczenia 4» Zadanie 5 » Ćwiczenia 6»