Операторы в JavaScript

01.01.2020

В JavaScript существуют много разных операторов. В этой статье мы рассмотрим все типы, а так же приоритеты между ними. Начнем.

Оператор присваивания

В результате переменная получит значение правого операнда и переменная будет ссылаться на этой значение.

let a = ‘111’; 

Существуют комбинированные операторы присваивания с разными действиями.

a += 10;		// a = a + 10
b /= 10; 		// b = b / 10
x >>>= 1;		// x = x >>> 1;  >>> - беззнаковый побитовый сдвиг

Деструктаризация

Для более сложного присваивания существует оператор деструктаризации. Его можно применять к массивам и объектам. Оператор деструктаризации выглядит как

let obj = {a: 1, b: 2};
const a = obj.a;
const b = obj[‘b’];   
// тоже самое можно было записать как
const {a, b} = …obj;

let array = [1,2,3,4,5,6,6];
const el1 = array[0];
const el2 = array[1]  
// с оператором деструктаризации   
const [el1, el2, …rest] = ...array; 
// в rest попадут оставшиеся элементы массива

Операторы сравнения

Операторы сравнения сравнивают свои операнды и возвращают логическое значение зависимости от истинности сравнения. Операнды могут быть логические значения, числа, строки, объекты.

Особенность JavaScript является то что при сравнение разных типов операндов, JavaScript приведет их к подходящему типу для сравнения. За исключением операций === и !==, в рамках которых приведение типов не выполняется.

Приведу пример использования операторов сравнения

‘100’ == 100		// true
100 === 50 + 50	// true
5 != ‘5’			// false
5 !== ‘5’			// true
5 > 10			// false
5 >= 5			// true
7 <= 6			// false
9 < 10			// true

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

Всем известны еще со школы основные арифметические операции Список арифметических операторов:

    •   // сложение и унарный плюс
      
  • — // вычитание и унарный минус
    •   // умножение
      
  • / // деление
  • % // остаток от деления
  • ++ // инкремент
  • —— // декремент
  • ** // возведение в степень

Битовые операторы

Битовые операторы представляют свои операнды как массивы бит, результат таких операторов возвращается как число. Список побитовых операторов:

  • & - побитовое И
  • | - побитовое ИЛИ
  • ^ - побитовое Исключающее ИЛИ
  • « - сдвиг влево
    • сдвиг вправо с переносом знака
    • сдвиг вправо с заполнением нулями

Логические операторы

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

  • && - логическое И
  • || - логическое ИЛИ
  • ! - логическое НЕ

Строковые операторы

Операторы которые работают со строками в JavaScript всего лишь два. Оператор сложения (+) применяется к строкам как конкатенация, то есть склеивает две строки в одну, Сокращенный оператор присваивания со сложением так же может быть применена к строкам.

Тернарный оператор

Единственный оператор в JavaScript который принимает три операнда. condition ? val1 : val2 Если условие (condition) - истина, то оператор вернет значение val1, иначе вернет значение val2.

Let carStatus = isEngineOn() ? ‘Active’ : ‘Idle’;

Приоритеты операторов

При составление достаточно сложных выражений, можно легко потерять порядок вычислений. Для облегчения можно использовать круглые скобки. В следующем списке приведены приоритеты операторов от наивысшего до низшего.

  • Отрицание, инкремент
  • Умножение, деление
  • Сложение, вычитание
  • Побитовый сдвиг
  • Сравнение
  • Равенство
  • Битовое И
  • Битовое исключающее ИЛИ
  • битовое ИЛИ
  • Логическое И
  • Логическое ИЛИ
  • Условный (тернарный) оператор
  • Присваивание

В следующей статье

Дальше мы продолжим рассматривать операторы, но уже с учетом построения выражений с помощью них.

#jsbook#javascript

Еженедельная рассылка новостей

Выражения

Типы данных в JavaScript