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 <18) text = "Too young";
Вы узнаете больше об использовании условных инструкций в следующей главе этого учебного пособия.
Логические операторы
Логические операторы используются для определения логики между переменными или значениями.
Учитывая, что x = 6 и y = 3, в таблице ниже объясняются логические операторы:
Оператор | Описание | Пример | Исполнить |
---|---|---|---|
&& | and | (x <10 && y> 1) is true | |
|| | or | (x == 5 || y == 5) is false | |
! | not | !(x == y) is true |
Условный (тройной) оператор
JavaScript также содержит условный оператор, который присваивает значение переменной на основе некоторого условия.
Синтаксис
variablename = (condition) ? value1:value2
Пример
var
voteable = (age <18) ? "Too young":"Old enough";
Если переменная Age является значением ниже 18, значение переменной для голосования будет "слишком молодым", в противном случае значение голоса будет "достаточно стар".
Сравнение различных типов
Сравнение данных различных типов может привести к неожиданным результатам.
При сравнении строки с числом, JavaScript преобразует строку в число при выполнении сравнения. Пустая строка преобразуется в 0. Нечисловая строка преобразуется в NaN, который всегда является ложным.
Case | Value | |
---|---|---|
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";
}