Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Обработчики событий в JavaScript.doc
Скачиваний:
2
Добавлен:
16.11.2019
Размер:
251.9 Кб
Скачать

- (Унарное Отрицание)

Операция унарного отрицания находится впереди операнда и выполняет его отрицание. Например, 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. Для неотрицательных значений сдвиг вправо с заполнением нулями и сдвиг вправо с сохранением знака дают один результат.