Источник: https://developer.mozilla.org/ru/docs/Web/JavaScript/Guide/Expressions_and_Operators
Выражением является любой валидный блок кода, который имеет ценность.
Концептуально, существуют два типа выражений: те которые присваивают переменной значение и те которые вычисляют значение без его присваивания куда-либо.
Все JavaScript выражения делятся на следующие категории:
В JavaScript имеются следующие типы операторов:
JavaScript поддерживает бинарные и унарные операторы, а также ещё один специальный тернарный оператор – условный оператор. Бинарная операция использует два операнда, один перед оператором (его знаком) и другой за ним:
operand1 operator operand2
В свою очередь унарная операция использует один операнд, перед или после оператора:
operator operand
или
operand operator
В результате операции присваивания операнду слева от оператора присваивания (знак =) устанавливается значение , которое берётся из правого операнда. Основным оператором присваивания является =, он присваивает значение правого операнда операнду находящемуся слева. Таким образом, выражение x = y означает, что x присваивает значение y.
Существуют также сокращенные операторы присваивания используемые для операций приведенных ниже в таблице:
| Сокращенный оператор | Значение |
|---|---|
| x += y | x = x + y |
| x -= y | x = x - y |
| x *= y | x = x * y |
| x /= y | x = x / y |
| x %= y | x = x % y |
| x <<= y | x = x << y |
| x >>= y | x = x >> y |
| x >>>= y | x = x >>> y |
| x &= y | x = x & y |
| x ^= y | x = x ^ y |
Оператор сравнения сравнивает свои операнды и возвращает логическое значение базируясь на равенстве или неравенстве значений операндов. Операнды могут быть числовыми, строчными, логическими или объектами. Строки сравниваются опираясь на стандартный лексографический порядок, используя Unicode значения. В большинстве случаев, если операнды имеют разный тип, JavaScript пробует преобразовать их к подходящему типу для сравнения. Данное поведение обычно используется при сравнении числовых операндов. Исключением из этого правила является сравнение с использованием операторов === и !==, которые производят строгое сравнение на равенство или неравенство. Эти операторы не делают попытки преобразовать операнды перед их сравнением на равенство. Следующая таблица описывает операторы сравнения в контексте следующего примера кода:
var var1 = 3, var2 = 4;
| Оператор | Описание | Примеры возвращающие true |
|---|---|---|
Равно == |
Возвращает true если операнды равны. | 3 == var1 "3" == var1 3 == '3' |
Не равно != |
Возвращает true если операнды не равны. | var1 != 4 var2 != "3" |
Строгое равно === |
Возвращает true если операнды равны и имеют одинаковый тип. | 3 === var1 |
Строго не равно !== |
Возвращает true если операнды не равны и/или имеют разный тип. | var1 !== "3" 3 !== '3' |
Больше чем > |
Возвращает true если операнд слева больше операнда справа. | var2 > var1 "12" > 2 |
Больше чем или равно >= |
Возвращает true если операнд слева больше или равен операнду справа. | var2 >= var1 var1 >= 3 |
Меньше чем < |
Возвращает true если операнд слева меньше операнда справа. | var1 < var2 "2" < "12" |
Меньше чем или равно <= |
Возвращает true если операнд слева меньше или равен операнду справа. | var1 <= var2 var2 <= 5 |
Арифметические операторы работают с числами (иногда со строками или переменными других типов) в качестве своих операндов и возвращиют единичный результат также число. Стандартными арифметическими операторами являются сложение +, вычитание -, умножение *, и деление /.
console.log(1 / 2); /* напечатает 0.5 */
console.log(1 / 2 == 1.0 / 2.0); /* напечатает true */