JavaScript Сравнение и Логические операторы
Операторы сравнения и логические операторы используются для проверки true
или false
.
Операторы сравнения
Операторы сравнения используются в логических операторах для определения равенства или различия между переменными или значениями.
Учитывая, что x = 5
, в таблице ниже объясняются операторы сравнения:
Оператор | Описание | Сравнение | Возвращает | Попробуй это |
---|---|---|---|---|
== | равно | x == 8 | false | Попробуй это » |
x == 5 | true | Попробуй это » | ||
x == "5" | true | Попробуй это » | ||
=== | равное значение и равный тип | x === 5 | true | Попробуй это » |
x === "5" | false | Попробуй это » | ||
!= | не равно | x != 8 | true | Попробуй это » |
!== | не равное значение или не равный тип | x !== 5 | false | Попробуй это » |
x !== "5" | true | Попробуй это » | ||
x !== 8 | true | Попробуй это » | ||
> | больше чем | x > 8 | false | Попробуй это » |
< | меньше чем | x < 8 | true | Попробуй это » |
>= | больше чем или равно | x >= 8 | false | Попробуй это » |
<= | меньше чем или равно | x <= 8 | true | Попробуй это » |
Как это можно использовать
Операторы сравнения могут использоваться в условных операторах для сравнения значений и принятия мер в зависимости от результата:
if (age < 14) text = "Ты слишком юная, чтобы заниматься сексом";
Вы узнаете больше об использовании условных операторов в следующей главе этого учебника.
Логические операторы
Логические операторы используются для определения логики между переменными или значениями.
Учитывая, что x = 6
и y = 3
, в таблице ниже объясняются логические операторы:
Оператор | Описание | Пример | Попробуй это |
---|---|---|---|
&& | and | (x < 10 && y > 1) является true | Попробуй это » |
|| | or | (x == 5 || y == 5) является false | Попробуй это » |
! | not | !(x == y) является true | Попробуй это » |
Условный (тернарный) оператор
JavaScript также содержит условный оператор, который присваивает значение переменной на основе некоторого условия.
Синтаксис
variablename = (condition) ? value1:value2
Пример
let voteable = (age < 14) ? "Слишком юная":"Достаточно взрослая";
Попробуйте сами »
Если переменная age имеет значение ниже 14, значение переменной, подлежащей голосованию, будет "Слишком юная", в противном случае значение переменной будет "Достаточно взрослая".
Сравнение разных типов
Сравнение данных разных типов может дать неожиданные результаты.
При сравнении строки с числом JavaScript преобразует строку в число при выполнении сравнения. Пустая строка преобразуется в 0. Нечисловая строка преобразуется в NaN
, что всегда false
.
Кейс | Значение | Попробуй |
---|---|---|
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 = "Ввод не является числом";
} else {
voteable = (age < 14) ? "Слишком юная" : "Достаточно взрослая";
}
Попробуйте сами »