Книга: Выразительный JavaScript
Сравнения
Сравнения
Один из способов получить булевские величины:
console.log(3 > 2)
// ? true
console.log(3 < 2)
// ? false
Знаки <
и >
традиционно обозначают «меньше» и «больше». Это бинарные операторы. В результате их использования мы получаем булеву величину, которая показывает, является ли неравенство верным.
Строки можно сравнивать так же:
console.log("Арбуз" < "Яблоко")
// ? true
Строки сравниваются по алфавиту: буквы в верхнем регистре всегда «меньше» букв в нижнем регистре. Сравнение основано на стандарте Unicode. Этот стандарт присваивает номер практически любому символу из любого языка. Во время сравнения строк JavaScript проходит по их символам слева направо, сравнивая номерные коды этих символов.
Другие сходные операторы – это >=
(больше или равно), <=
(меньше или равно), ==
(равно), !=
(не равно).
console.log("Хочется" != "Колется")
// ? true
В JavaScript есть только одна величина, которая не равна самой себе – NaN
(«не число»).
console.log(NaN == NaN)
– это результат любого бессмысленного вычисления, поэтому он не равен результату какого-то другого бессмысленного вычисления.
// ? false
NaN
Есть операции, которые можно совершать и с самими булевыми значениями. JavaScript поддерживает три логических оператора: и, или, нет.
Оператор &&
— логическое «и». Он бинарный, и его результат – правда, только если обе величины, к которым он применяется, тоже правда.
console.log(true && false)
// ? false
console.log(true && true)
// ? true
Оператор ||
— логическое «или». Выдаёт true
, если одна из величин true
.
console.log(false || true)
// ? true
console.log(false || false)
// ? false
«Нет» записывается при помощи восклицательного знака “!
”. Это унарный оператор, который обращает данную величину на обратную. !true
получается false
, !false
получается true
.
При использовании логических и арифметических операторов не всегда ясно, когда нужны скобки. На практике вы можете справиться с этим, зная, что у ||
приоритет ниже всех, потом идёт &&
, потом операторы сравнения, потом все остальные. Такой порядок был выбран для того, чтобы в выражениях типа следующего можно было использовать минимальное количество скобок:
1 + 1 == 2 && 10 * 10 > 50
Последний логический оператор не унарный и не бинарный – он тройной. Записывается при помощи вопросительного знака и двоеточия:
console.log(true ? 1 : 2);
// ? 1
console.log(false ? 1 : 2);
// ? 2
Это условный оператор, у которого величина слева от вопросительного знака выбирает одну из двух величин, разделённых двоеточием. Когда величина слева true
, выбираем первое значение. Когда false
, второе.
- Другие предикаты сравнения
- Конструкции выбора решений и операции сравнения
- 9.6.4. Методы сравнения
- Процедуры сравнения
- Пример сравнения эквивалентных алгоритмов, в которых возбуждение исключений соответственно используется или не используе...
- 4.9.2. Операторы сравнения
- Пример 12-27. Пример сравнения двух файлов с помощью cmp.
- Операторы сравнения
- 2. Определение типа сравнения данных (от идеи к сравнению данных)
- Маркетинг сравнения. Показатель № 2 – тест-драйв
- 3. Выбор типа диаграммы (от сравнения к диаграмме)
- Операторы сравнения в Python: