Главная » Операции и операторы в JavaScript : обзор

Операции и операторы в JavaScript : обзор


27.02.2021, 00:35
Операция +

Выполняет сложение числовых операндов или конкатенацию строковых.

Код

1 + 2 /* 3 */

"Hello" + "," + "world" /* Hello,world */

"1" + "2" // "12"

Другие примеры:

Код

"1" + 2 /* => "12" конкатенация после преобразования числа в строку */

1 + {} /* => "1[object Object]" конкатенация после преобразования объекта в строку */

true + true /* => 2 сложение после преобразования булевого значения в число */

2 + null /* => 2 сложение после преобразования null в 0 */

2 + undefined /* => NaN сложение после преобразования undefined в NaN */

1 + 2 + "строка" /* => "3строка" */

1 + (2 + "строка") // => "12строка"

Унарные арифметические операции

Изменяют значение одного операнда для получения нового значения.

Унарный плюс (+)

Преобразует операнд в число (или в NaN) и возвращает преобразованное значение.

Унарный минус (-)

Операнд при необходимости преобразуется в число и знак результата изменяется.

Инкремент (++)

Добавляет к операнду единицу.

++операнд - префиксная форма, возвращает инкрементированное значение операнда

операнд++ - постфиксная форма, инкрементирует, но возвращает значение операнда до инкрементирования

Код

let x = 1, y = ++x; /* => x и y равны 2 */

let a = 1, b = a++; // => a равно 2, b = 1

Декремент (--)

Вычитает единицу от операнда.

По аналогии с ++ имеет префиксную и постфиксную формы.

--операнд - префиксная форма, возвращает декрементированное значение операнда

операнд-- - постфиксная форма, декрементирует, но возвращает значение операнда до декрементирования

Операции равенства и неравенства

Операция равенства ==

проверяет, равны ли два операнда (без использования проверки по типу)

Код
"5" == 5 // => true

Если значения двух операндов относятся к разным типам, производится преобразование типов и повторное сравнение.

- если одно значение null, а другое undefined, то они равны

- если одно из значений строка, а другое число, строка преобразуется в число и проводится повторное сравнение

- при сравнении true преобразуется в 1, а false в 0

Код
true == 1 // => true

тоже самое, но еще с преобразованием строки в число:

Код

true == "1" // => true

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

проверяет, равны ли два операнда (с использованием проверки по типу)

Код
"5" === 5 // => false

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

Операция неравенства != (не равно)

Возвращает false, если два операнда равны по операции ==, и true, если неравны.

Код

"5" != 5 // => false

Операция строгого неравенства !== (строго не равно)

Возвращает false, если два операнда строго равны по операции ===, и true, если неравны.

Код

"5" !== 5 // => true

- два значения разных типов не равны

- два значения не равны, если одно или оба имеют значение NaN

Код
NaN === NaN // => false

- значения равны, если они оба null или undefined

- значения равны, если они оба true или false

- значения равны, если одно из них 0, а другое -0

Операции сравнения

Меньше (<)

Больше (>)

Меньше или равно (<=)

Больше или равно (>=)

Оператор остаток от деления (%)

Возвращает целочисленный остаток от деления двух операндов.

Код

5 % 2 /* => 1 */
12 % 5 /* => 2*/

Комбинированные операторы для математических действий над переменными

Код
let number = 10;

number += 10
то же, что и number = number + 10;

number -= 10
то же, что и number = number - 10;

number *= 10
то же, что и number = number * 10;

number /= 10
то же, что и number = number / 10;

Если два объекта имеют одинаковое количество свойств, причем с одинаковыми именами и значениями, они не равны.
Два массива, имеющие одинаковые эелементы в одинаковом порядке, не равны.

Таблица приоритетов операторов
Побитовые операторы

КОММЕНТАРИИ (0)

ТЕГИ МАТЕРИАЛА
операторы
РЕЙТИНГ МАТЕРИАЛА (0.0 / 0)