- •Обработчики событий в JavaScript. OnBlur onChange onClick onFocus onLoad ...
- •% (Modulus/целочисленный остаток)
- •- (Унарное Отрицание)
- •Операции Присвоения
- •Операции Сравнения
- •Использование Операций Равенства
- •Обратная Совместимость
- •Арифметические Операции
- •% (Modulus/целочисленный остаток)
- •- (Унарное Отрицание)
- •Побитовые Операции
- •Побитовые Логические Операции
- •Операции Побитового Сдвига
- •Логические Операции
- •Обратная Совместимость
- •Примеры
- •Строковые Операции
- •Синтаксис
- •Параметры
- •Описание
- •Синтаксис
- •Параметры
- •Описание
- •Примеры
- •Синтаксис
- •Примеры
- (Унарное Отрицание)
Операция унарного отрицания находится впереди операнда и выполняет его отрицание. Например, y = -x отрицает (меняет знак) значения x и присваивает его переменной y; то есть, если x равен 3, y получает значение -3, а значение x остаётся равным 3.
Побитовые Операции
Побитовые операции рассматривают каждый операнд как набор из 32 битов (0 и 1), а не как десятеричное, 16-ричное или 8-ричное число. Например, 10-ричное число 9 имеет двоичное представление 1001. Побитовые операции выполняются над такими двоичными представлениями чисел, но возвращают стандартные числовые значения JavaScript.
Таблица 5.4 Побитовые Операции
Операция |
Использование |
Описание |
AND |
a & b |
Возвращает 1 в каждой битовой позиции, где оба бита операндов равны 1. |
OR |
a | b |
Возвращает 1 в каждой битовой позиции, где один или оба бита операндов равны 1. |
XOR |
a ^ b |
Возвращает 1 в каждой битовой позиции, где один, но не оба бита операндов равен 1. |
NOT |
~ a |
Инвертирует биты операнда. |
Сдвиг влево |
a << b |
Сдвигает a в двоичном представлении на b битов влево, заполняя справа нулями. |
Сдвиг вправо с сохранением знака |
a >> b |
Сдвигает a в двоичном представлении на b битов вправо, отбрасывая сдвинутые биты. |
Сдвиг вправо с заполнением нулями |
a >>> b |
Сдвигает a в двоичном представлении на b битов вправо, отбрасывая сдвинутые биты и заполняя слева нулями. |
Побитовые Логические Операции
Реализованы в |
JavaScript 1.0 |
Версия ECMA |
ECMA-262 |
Концептуально побитовые логические операции работают так:
Операнды конвертируются в 32-битные целые числа и выражаются сериями битов (0 и 1).
Каждый бит первого операнда образует пару с битом второго операнда в этой же позиции: первый с первым, второй со вторым и т.д.
Операция выполняется для каждой пары битов, и результат конструируется побитно.
Например, двоичное представление 9 выглядит как 1001, а представление 15 - как 1111. Поэтому при выполнении побитовых операций с этими значениями, результаты будут такими:
15 & 9 даёт 9 (1111 & 1001 = 1001)
15 | 9 даёт 15 (1111 | 1001 = 1111)
15 ^ 9 даёт 6 (1111 ^ 1001 = 0110)
Операции Побитового Сдвига
Реализованы в |
JavaScript 1.0 |
Версия ECMA |
ECMA-262 |
Операции побитового сдвига принимают два операнда: первый операнд сдвигается, а второй специфицирует количество битовых позиций, на которое сдвигается первый операнд. Направление операции сдвига контролируется самой операцией.
Операции сдвига конвертируют операнды в 32-битные целые числа, и возвращают результат того же типа, что у левого операнда.
<< (Сдвиг влево)
Эта операция сдвигает влево первый операнд на специфицированное вторым операндом количество бит. Излишние биты, сдвинутые влево, отбрасываются. Справа заполнение идёт нулями.
Например, 9<<2 даёт 36, поскольку 1001, сдвинутое на 2 бита влево становится 100100, что равно 36.
>> (Сдвиг вправо с сохранением знака)
Эта операция сдвигает вправо первый операнд на специфицированное вторым операндом количество бит. Излишние биты, сдвинутые вправо, отбрасываются. Копии самых левых битов вставляются слева.
Например, 9>>2 даёт 2, поскольку 1001, сдвинутое на 2 позиции вправо, становится 10, то есть 2. Аналогично, -9>>2 даёт -3, поскольку знак сохраняется.
>>> (Сдвиг вправо с заполнением нулями)
Эта операция сдвигает вправо первый операнд на специфицированное вторым операндом количество бит. Излишние биты, сдвинутые вправо, отбрасываются. Слева заполнение идёт нулями.
Например, 19>>>2 даст 4, поскольку 10011, сдвинутое на два бита вправо даст 100, то есть 4. Для неотрицательных значений сдвиг вправо с заполнением нулями и сдвиг вправо с сохранением знака дают один результат.