Porównanie JavaScript i operatory logiczne
Operatory porównania i logiczne służą do testowania true
lub
false
.
Operatory porównania
Operatory porównania są używane w instrukcjach logicznych w celu określenia równości lub różnicy między zmiennymi lub wartościami.
Biorąc to pod uwagę x = 5
, poniższa tabela wyjaśnia operatory porównania:
Operator | Description | Comparing | Returns | Try it |
---|---|---|---|---|
== | equal to | x == 8 | false | |
x == 5 | true | |||
x == "5" | true | |||
=== | equal value and equal type | x === 5 | true | |
x === "5" | false | |||
!= | not equal | x != 8 | true | |
!== | not equal value or not equal type | x !== 5 | false | |
x !== "5" | true | |||
x !== 8 | true | |||
> | greater than | x > 8 | false | |
< | less than | x < 8 | true | |
>= | greater than or equal to | x >= 8 | false | |
<= | less than or equal to | x <= 8 | true |
Jak można go używać
Operatory porównania mogą być używane w instrukcjach warunkowych do porównywania wartości i podejmowania działań w zależności od wyniku:
if (age < 18) text = "Too young to buy alcohol";
Więcej o używaniu instrukcji warunkowych dowiesz się w następnym rozdziale tego samouczka.
Operatory logiczne
Operatory logiczne służą do określenia logiki między zmiennymi lub wartościami.
Biorąc pod uwagę to x = 6
i y = 3
, poniższa tabela wyjaśnia operatory logiczne:
Operator | Description | Example | Try it |
---|---|---|---|
&& | and | (x < 10 && y > 1) is true | |
|| | or | (x == 5 || y == 5) is false | |
! | not | !(x == y) is true |
Operator warunkowy (potrójny)
JavaScript zawiera również operator warunkowy, który przypisuje wartość do zmiennej na podstawie pewnego warunku.
Składnia
variablename = (condition) ? value1:value2
Przykład
let voteable = (age < 18) ? "Too young":"Old enough";
Jeśli zmienna wiek jest wartością poniżej 18, wartość zmiennej podatny na głosowanie będzie "Zbyt młody", w przeciwnym razie zmienna podatny na głosowanie będzie miała wartość "Wystarczająco stara".
Porównywanie różnych typów
Porównywanie danych różnych typów może dać nieoczekiwane wyniki.
Porównując ciąg z liczbą, JavaScript przekonwertuje ciąg na liczbę podczas porównywania. Pusty ciąg jest konwertowany na 0. Konwertowany jest ciąg nienumeryczny, na NaN
który jest zawsze false
.
Case | Value | Try |
---|---|---|
2 < 12 | true | |
2 < "12" | true | |
2 < "John" | false | |
2 > "John" | false | |
2 == "John" | false | |
"2" < "12" | false | |
"2" > "12" | true | |
"2" == "12" | false |
Porównując dwa ciągi, „2” będzie większe niż „12”, ponieważ (alfabetycznie) 1 jest mniejsze niż 2.
Aby zapewnić prawidłowy wynik, zmienne należy przed porównaniem przekonwertować na właściwy typ:
age = Number(age);
if (isNaN(age)) {
voteable = "Input is not a number";
} else {
voteable = (age < 18) ? "Too young" : "Old enough";
}