Сравнение JavaScript и логические операторы
Сравнение и логические операторы используются для проверки true
или
false
.
Операторы сравнения
Операторы сравнения используются в логических операторах для определения равенства или различия между переменными или значениями.
Учитывая это x = 5
, в таблице ниже объясняются операторы сравнения:
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 |
Как это можно использовать
Операторы сравнения можно использовать в условных операторах для сравнения значений и выполнения действий в зависимости от результата:
if (age < 18) text = "Too young to buy alcohol";
Вы узнаете больше об использовании условных операторов в следующей главе этого руководства.
Логические операторы
Логические операторы используются для определения логики между переменными или значениями.
Учитывая, что x = 6
и y = 3
, в таблице ниже объясняются логические операторы:
Operator | Description | Example | Try it |
---|---|---|---|
&& | and | (x < 10 && y > 1) is true | |
|| | or | (x == 5 || y == 5) is false | |
! | not | !(x == y) is true |
Условный (тернарный) оператор
JavaScript также содержит условный оператор, который присваивает значение переменной на основе некоторого условия.
Синтаксис
variablename = (condition) ? value1:value2
Пример
let voteable = (age < 18) ? "Too young":"Old enough";
Если значение переменной age ниже 18, значением переменной voiceable будет «Слишком молодо», в противном случае значением voiceable будет «Достаточно стар».
Сравнение различных типов
Сравнение данных разных типов может дать неожиданные результаты.
При сравнении строки с числом JavaScript преобразует строку в число при выполнении сравнения. Пустая строка преобразуется в 0. Нечисловая строка NaN
всегда преобразуется в 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 |
При сравнении двух строк «2» будет больше, чем «12», потому что (в алфавитном порядке) 1 меньше 2.
Чтобы обеспечить правильный результат, переменные должны быть преобразованы в правильный тип перед сравнением:
age = Number(age);
if (isNaN(age)) {
voteable = "Input is not a number";
} else {
voteable = (age < 18) ? "Too young" : "Old enough";
}