Двоичные/Бинарные/Binary — это операции, которые принимают 2 числовых элемента на вход и выдают один на выходе.
Синтаксис AND — &
BitwiseANDExpression[In, Yield, Await] :
EqualityExpression[?In, ?Yield, ?Await]
BitwiseANDExpression[?In, ?Yield, ?Await] & EqualityExpression[?In, ?Yield, ?Await]
Синтаксис XOR — ^
BitwiseXORExpression[In, Yield, Await] :
BitwiseANDExpression[?In, ?Yield, ?Await]
BitwiseXORExpression[?In, ?Yield, ?Await] ^ BitwiseANDExpression[?In, ?Yield, ?Await]
Синтаксис OR — |
BitwiseORExpression[In, Yield, Await] :
BitwiseXORExpression[?In, ?Yield, ?Await]
BitwiseORExpression[?In, ?Yield, ?Await] | BitwiseXORExpression[?In, ?Yield, ?Await]
Примеры AND — &
Операция AND — это побитовое умножение. Это двоичная операция, а значит она принимает на вход два каких-то числа.
Допустим у нас есть два числа:
- 12
- 10
Так они будут выглядеть в двоичной системе счисления:
- 1100
- 1010

Теперь операция AND начинает последовательно смотреть на каждый бит (пары). Смотрит справа налево. Логическое «И» истинно только если оба бита истинны.

Первая пара — ноль и ноль. Результат AND вернёт 0.

Вторая пара — ноль и один. Результат AND вернёт 0.

Третья пара — один и ноль. Результат AND вернёт 0.

Четвёртая пара — один и один. Результат AND вернёт 1.
По итогу мы получим двоичное число 1000. Это 8 в десятичной системе счисления.
Примеры XOR — ^
Это двоичная операция, а значит она принимает на вход два каких-то числа.
Примеры OR — |
Это двоичная операция, а значит она принимает на вход два каких-то числа.
Семантика времени выполнения: оценка
BitwiseANDExpression : BitwiseANDExpression & EqualityExpression
1. Вернуть ? EvaluateStringOrNumericBinaryExpression(BitwiseANDExpression, &, EqualityExpression).
BitwiseXORExpression : BitwiseXORExpression ^ BitwiseANDExpression
1. Вернуть ? EvaluateStringOrNumericBinaryExpression(BitwiseXORExpression, ^, BitwiseANDExpression).
BitwiseORExpression : BitwiseORExpression | BitwiseXORExpression
1. Вернуть ? EvaluateStringOrNumericBinaryExpression(BitwiseORExpression, |, BitwiseXORExpression).
Информационные ссылки
Стандарт ECMAScript — Раздел «13.12 Binary Bitwise Operators» — https://tc39.es/ecma262/#sec-binary-bitwise-operators