Битовые операции применяются к числовым операндам, представленным как двоичные числа (т. е. как цепочки из 32 битов), и возвращают числовое значение, означающее результат операции. Перед выполнением операции операнды преобразуются в целые числа, а результат операции преобразуется в Number.
Операция Название Описание
a & b Побитовое AND Возвращает в каждой битовой позиции 1, если соответствующие позиции обоих операндов равны 1.
a | b Побитовое OR Возвращает в каждой битовой позиции 1, если соответствующая позиция хотя бы одного операнда равна 1.
a ^ b Побитовое XOR Возвращает в каждой битовой позиции 1, если соответствующая позиция ровно одного операнда равна 1.
~a Побитовое NOT Унарная операция. Инвертирует каждую битовую позицию операнда.
a << b Сдвиг влево Сдвигает двоичное представление левого операнда влево на количество бит, заданное вторым операндом. Освобождающиеся справа биты заполняются нулями.
a >> b Арифметический сдвиг вправо Сдвигает двоичное представление левого операнда вправо на количество бит, заданное вторым операндом. Освобождающиеся слева биты заполняются старшим (знаковым) битом.
a >>> b Логический сдвиг вправо Сдвигает двоичное представление левого операнда вправо на количество бит, заданное вторым операндом. Освобождающиеся слева биты заполняются нулями.
Примеры:
var i, j, k;
i = 15; j = 9;
k = i & j;	// k равно 9 (1111 & 1001 = 1001)
k = i | j;	// k равно 15 (1111 | 1001 = 1111)
k = i ^ j;	// k равно 6 (1111 ^ 1001 = 0110)
i = -14;	// двоичное значение 11111111 11111111 11111111 11110010
j = i >> 2;	// j равно -4 (11111111 11111111 11111111 11111100)
k = i >>> 2;	// k равно 1073741820 (00111111 11111111 11111111 11111100)