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 == 8 | false | Spróbuj " |
x == 5 | true | Spróbuj " | ||
x == "5" | true | Spróbuj " | ||
=== | równej wartości i równe typu | x === 5 | true | Spróbuj " |
x === "5" | false | Spróbuj " | ||
!= | nie równe | x != 8 | true | Spróbuj " |
!== | nie jest równa wartości, czy też nie równa typu | x !== 5 | false | Spróbuj " |
x !== "5" | true | Spróbuj " | ||
x !== 8 | true | Spróbuj " | ||
> | lepszy niż | x > 8 | false | Spróbuj " |
< | mniej niż | x < 8 | true | Spróbuj " |
>= | większe bądź równe | x >= 8 | false | Spróbuj " |
<= | mniejsza lub równa | x <= 8 | true | 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 < 12 | true | 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
Sprawdź się z ćwiczeń!
Ćwiczenie 1 » Ćwiczenie 2» Ćwiczenie 3 » Ćwiczenia 4» Zadanie 5 » Ćwiczenia 6»