На аппаратном уровне данные хранятся в памяти поразрядно. Они записываются в двоичной системе счисления, в которой любое целое число может быть представлено при помощи символов 0 и 1. В зависимости от размещения, каждый единичный разряд представляет значение 2 в степени п, где п — номер разряда, считая справа.
Работа с двоичными представлениями целых чисел в JavaScript обеспечивается через поразрядные операции. Самая простая из поразрядных операций — унарная операция дополнения до единицы, которая обозначается тильдой~. Она изменяет значение каждого разряда операнда на противоположное. Рассмотрим, как выполняется дополнение до единицы для числа 6:
x = ~6
В двоичной форме это выглядит так:
х = ~00000000000000000000000000000110
В результате получим
х = 11111111111111111111111111111001
т.е.
х = -7
Пример js12b
Поразрядные логические операции
Они применяются к операндам поразрядно, т.е. операция выполняется над каждой парой разрядов.
Например, применение поразрядной операции И к числам 01111 и 11011 дает в результате число 01011.
Используются следующие двоичные операции:
& побитовое И
| побитовое ИЛИ
^побитовое исключающее ИЛИ
~побитовое НЕ
<<сдвиг влево с заполнением нулями младших разрядов
>> сдвиг вправо с заполнением возникающих старших разрядов содержимым самого старшего разряда
Пример js12c, js12d
Эти операции могут комбинироваться с операцией присваивания так же как и для арифметических операций.
В JavaScript большинство типов могут быть преобразованы в логические значения trueиfalse.При этом в значение false преобразуются нулевое значение, пустая строка, null и значение объявленной но неинициализированной переменной. Все остальное преобразуется в true. Все объекты преобразуются в true.