Выражения в JavaScript, как и в других языках программирования, представляют собой комбинации переменных, констант и операций, дающие осмысленный результат. Этот результат может быть числом, текстовой строкой, логическим значением или объектом. Соответственно все выражения JavaScript подразделяются на арифметические, строковые, логические и объектные.
Существует два типа выражений: те, которые присваивают значение некоторой переменной (например, x = 2 + 3), и те, которые просто имеют некое значение (например, 2 + 3). Первый тип выражений называется операциями присваивания.
Все операции в JavaScript подразделяются на следующие: операции сравнения, арифметические операции, битовые операции, логические операции, строковые операции, операции присваивания, прочие операции.
Операции сравнения
Операции сравнения сравнивают два операнда и возвращают логическое значение, означающее результат этого сравнения. Строки сравниваются в лексикографическом порядке в кодировке Unicode. Если типы операндов различны, то делается попытка преобразовать их к одному типу. При этом:
Операции "больше", "меньше", "не больше" и "не меньше" сначала пытаются преобразовать операнды в числа, а, если это невозможно, то в строки, а затем производят их сравнение.
Операции "равно" и "не равно" пытаются преобразовать операнды в строки, затем в числа и в логические значения, а затем производят их сравнение.
Операции "тождественно" и "не тождественно" не преобразовывают типы данных: два операнда считаются тождественно равными, если они имеют одинаковые типы и одинаковые значения.
Операции сравненияОперация | Название | Описание |
---|
a < b | Меньше | Возвращает true, если левый операнд меньше, чем правый операнд. | a > b | Больше | Возвращает true, если левый операнд больше, чем правый операнд. | a <= b | Не больше | Возвращает true, если левый операнд меньше или равен правому операнду. | a => b | Не меньше | Возвращает true, если левый операнд больше или равен правому операнду. | a == b | Равно | Возвращает true, если левый операнд равен правому операнду. | a != b | Не равно | Возвращает true, если левый операнд не равен правому операнду. | a === b | Тождественно | Возвращает true, если левый операнд тождественно равен правому операнду. | a !== b | Не тождественно | Возвращает true, если левый операнд тождественно не равен правому операнду. |
Примеры:
var x = "3"; a = x == 3; // a равно true b = x === 3; // b равно false (разные типы)
Арифметические операции
Арифметические операции применяются к числовым операндам и возвращают числовое значение, означающее результат операции. Если типы операндов различны, то делается попытка преобразовать их к числовому типу. При этом:
Операция "сложение" выполняется только тогда, когда оба операнда являются числами или логическими значениями. Если хотя бы один операнд является строкой, то производится конкатенация строк.
Остальные операции преобразуют операнды в числа, а затем выполняют операцию.
Операции "инкремент" и "декремент" применяются только к переменным.
Арифметические операцииОперация | Название | Описание |
---|
a + b | Сложение | Возвращает сумму двух операндов. | a - b | Вычитание | Возвращает разность от вычитания правого операнда из левого. | a * b | Умножение | Возвращает произведение двух операндов. | a / b | Деление | Возвращает частное от деления левого операнда на правый. | a % b | Остаток по модулю | Возвращает целый остаток от деления левого операнда на правый. Плавающие числа перед операцией округляются до целых. | ++ | Инкремент | Унарная операция. Увеличивает значение переменной на 1. Если используется как префикс (++a), возвращает значение операнда после увеличения его на 1. Если используется как постфикс (a++), возвращает значение операнда перед увеличением его на 1. | -- | Декремент | Унарная операция. Уменьшает значение переменной на 1. Если используется как префикс (--a), возвращает значение операнда после уменьшения его на 1. Если используется как постфикс (a--), возвращает значение операнда перед уменьшением его на 1. | -a | Смена знака | Унарная операция. Возвращает арифметическое отрицание операнда. |
Примеры:
var i, j, k; i = 19 % 6.8; // i равно 5 k = 2; j = k++; // j равно 2, k равно 3 j = ++k; // j и k равны 4
1 2 3 4
8 8 8
| |