Конспект JS-course

Выражения и операторы

Источник: https://developer.mozilla.org/ru/docs/Web/JavaScript/Guide/Expressions_and_Operators

Выражения

Выражением является любой валидный блок кода, который имеет ценность.

Концептуально, существуют два типа выражений: те которые присваивают переменной значение и те которые вычисляют значение без его присваивания куда-либо.

Все JavaScript выражения делятся на следующие категории:

  1. Арифметические: равняются числу, для примера 3.14159 (Используют арифметические операторы).
  2. Строчные: равняются текстовой строке, для примера, "Fred" или "234" (Используют строчные операторы).
  3. Логические: равняются true или false (Используют логические операторы).
  4. Объектные: равняются объекту.

Операторы

В 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 &quot;3&quot; == var1 3 == &#39;3&#39;
Не равно != Возвращает true если операнды не равны. var1 != 4 var2 != &quot;3&quot;
Строгое равно === Возвращает true если операнды равны и имеют одинаковый тип. 3 === var1
Строго не равно !== Возвращает true если операнды не равны и/или имеют разный тип. var1 !== &quot;3&quot; 3 !== &#39;3&#39;
Больше чем &gt; Возвращает true если операнд слева больше операнда справа. var2 &gt; var1 &quot;12&quot; &gt; 2
Больше чем или равно &gt;= Возвращает true если операнд слева больше или равен операнду справа. var2 &gt;= var1 var1 &gt;= 3
Меньше чем &lt; Возвращает true если операнд слева меньше операнда справа. var1 &lt; var2 &quot;2&quot; &lt; &quot;12&quot;
Меньше чем или равно &lt;= Возвращает true если операнд слева меньше или равен операнду справа. var1 &lt;= var2 var2 &lt;= 5

Арифметические операторы

Арифметические операторы работают с числами (иногда со строками или переменными других типов) в качестве своих операндов и возвращиют единичный результат также число. Стандартными арифметическими операторами являются сложение +, вычитание -, умножение *, и деление /.

console.log(1 / 2); /* напечатает 0.5 */
console.log(1 / 2 == 1.0 / 2.0); /* напечатает true */