Арифметические операции принимают в качестве операндов числовые значения (литералы или переменные) и возвращают единственное числовое значение. Стандартные арифметические операции: сложение (+), вычитание (-), умножение (*) и деление (/).
Реализованы в
JavaScript 1.0
Версия ECMA
ECMA-262
Эти операции работают так же, как и в большинстве других языков программирования, за исключением операции /, которая возвращает в JavaScript результат (с плавающей точкой) деления, а не округлённый результат, как в C или Java. Например:
Операция modulus возвращает первый операнд modulo второй операнд, то есть var1 modulo var2, как в вышеприведённом операторе, где var1 и var2 это переменные. Функция modulo это целочисленный остаток от деления var1 на var2. Например, 12 % 5 возвращает 2.
++ (Инкремент)
Операция инкремента выполняется так:
var++ или ++var
Эта операция выполняет инкремент (прибавляет 1) операнда и возвращает его значение. Если это постфикс, когда операция находится после операнда (например, x++), возвращается значение, которое было до выполнения инкремента. Если используется префикс (например, ++x), возвращается значение, полученное после выполнения инкремента.
Например, если x равен 3, то оператор y = x++ устанавливает в y 3 и выполняет инкремент x до 4. Если x равен 3, то оператор y = ++x выполняет инкремент x до 4 и устанавливает в переменную y значение 4.
-- (Декремент)
Операция декремента используется так:
var-- или --var
Эта операция выполняет декремент (вычитает 1) операнда и возвращает его значение. Если это постфикс, когда операция находится после операнда (например, x--), возвращается значение, которое было до выполнения декремента. Если используется префикс (например, --x), возвращается значение, полученное после выполнения декремента.
Например, если x равен 3, оператор y = x-- устанавливает в y значение 3 и выполняет декремент x до 2. Если x равен 3, оператор y = --x выполняет декремент x до 2 и устанавливает в переменную y значение 2.
- (Унарное Отрицание)
Операция унарного отрицания находится впереди операнда и выполняет его отрицание. Например, y = -x отрицает (меняет знак) значения x и присваивает его переменной y; то есть, если x равен 3, y получает значение -3, а значение x остаётся равным 3.
В JavaScript имеются операции присвоения, сравнения, арифметические, побитовые/bitwise, логические, строковые и специальные. В этой главе рассматриваются эти операции и содержится информация о приоритете операций.
В таблице дано резюме по операциям JavaScript.
Таблица 5.1 Операции JavaScript
Категория Операции
Операция
Описание
Арифметические
+
(Сложение) Складывает два числа.
++
(Инкремент) Прибавляет 1 к переменной, представляющей число (возвращая новое или старое значение переменной).
-
(Унарное отрицание, вычитание) Как унарная операция отрицает значение аргумента. Как бинарная - вычитает второй аргумент из первого.
--
(Декремент) Вычитает 1 из переменной, представляющей число (возвращая новое или старое значение переменной).
*
(Умножение) Перемножает два числа.
/
(Деление) Делит одно число на другое.
%
(Modulus) Вычисляет целочисленный остаток от деления двух чисел.
Строковые
+
(Сложение строк/Конкатенация) Объединяет две строки.
+=
Объединяет две строки и присваивает результат первому операнду.
Логические
&&
(Логическое И) Возвращает первый операнд, если он может быть конвертирован в false; иначе возвращает второй операнд. При использовании с Булевыми значениями && возвращает true, если оба операнда true; иначе возвращает false.
||
(Логическое ИЛИ) Возвращает первый операнд, если он может быть конвертирован в false; иначе возвращает второй операнд. При использовании с Булевыми значениями || возвращает true, если любой из операндов true; если оба false, возвращает false.
!
(Логическое НЕ) Возвращает false, если единственный операнд может быть конвертирован в true; иначе возвращает true.
Побитовые
&
(Побитовое И) Возвращает 1 в каждой битовой позиции, если биты обоих операндов равны единице.
^
(Побитовое исключающее ИЛИ) Возвращает 1 в каждой битовой позиции, если бит одного, но не обоих операндов равен 1.
|
(Побитовое ИЛИ) Возвращает 1 в битовой позиции, если бит любого операнда равен 1.
~
(Побитовое НЕ) Инвертирует биты операнда.
<<
(Сдвиг влево) Сдвигает влево первый операнд, в двоичном представлении, на количество битов, специфицированное вторым операндом, заполняя справа нулями.
>>
(Сдвиг вправо с сохранением знака) Сдвигает вправо первый операнд, в двоичном представлении, на количество битов, специфицированное вторым операндом, отбрасывая сдвинутые биты.
>>>
(Сдвиг вправо с заполнением нулями) Сдвигает вправо первый операнд, в двоичном представлении, на количество битов, специфицированное вторым операндом, отбрасывая сдвинутые биты и заполняя нулями слева.
Операции Присвоения
=
Присваивает значение второго операнда первому операнду.
+=
Складывает два числа и присваивает результат первому.
-=
Вычитает два числа и присваивает результат первому.
*=
Умножает два числа и присваивает результат первому.
/=
Делит два числа и присваивает результат первому.
%=
Вычисляет целочисленный остаток от деления двух чисел и присваивает результат первому.
&=
Выполняет побитовое AND и присваивает результат первому операнду.
^=
Выполняет побитовое XOR и присваивает результат первому операнду.
|=
Выполняет побитовое OR и присваивает результат первому операнду.
<<=
Выполняет побитовый сдвиг влево и присваивает результат первому операнду.
>>=
Выполняет побитовый сдвиг вправо с сохранением знака и присваивает результат первому операнду.
>>>=
Выполняет побитовый сдвиг вправо с заполнением нулями и присваивает результат первому операнду.
Операции Сравнения
==
Возвращает true, если операнды равны.
!=
Возвращает true, если операнды не равны.
===
Возвращает true, если операнды равны и одного типа.
!==
Возвращает true, если операнды не равны и/или не одного типа.
>
Возвращает true, если левый операнд больше правого.
>=
Возвращает true, если левый операнд больше правого или равен ему.
<
Возвращает true, если левый операнд меньше.
<=
Возвращает true, если левый операнд меньше правого или равен ему.
Специальные Операции
?:
Выполняет простой оператор "if...then...else"
,
Вычисляет два выражения и возвращает результат второго выражения.
delete
Удаляет объект, свойство объекта или элемент по специфицированному индексу в массиве.
new
Создаёт экземпляр объекта определённого пользователем типа или одного из встроенных типов.
this
Ключевое слово, которое можно использовать для обращения к текущему объекту.
typeof
Возвращает строку, указывающую тип невычисленного операнда.
void
Специфицирует выражение, вычисляемое без возвращения значения.