Это побитовые операторы, все поддерживаемые в JavaScript:
op1 & op2
- Оператор AND
сравнивает два бита и генерирует результат 1, если оба бита равны 1; в противном случае он возвращает 0. op1 | op2
- Оператор OR
сравнивает два бита и генерирует результат 1, если биты являются дополнительными; в противном случае он возвращает 0. op1^ op2
- оператор EXCLUSIVE-OR
сравнивает два бита и возвращает 1, если один из битов равен 1, и он дает 0, если оба бита равны 0 или 1. ~op1
- Оператор C OMPLEMENT
используется для инвертирования всех бит операнда. op1 << op2
- Оператор SHIFT LEFT
перемещает биты в left, отбрасывает крайний левый бит и присваивает самый правый бит значение 0. Каждое перемещение влево эффективно умножает op1 на 2. op1 >> op2
- The SHIFT RIGHT
оператор перемещает биты в right, отбрасывает крайний правый бит и назначает крайний левый бит значением 0. Каждое перемещение вправо эффективно делит op1 пополам. Значок бит слева сохраняется. op1 >>> op2
- The SHIFT RIGHT
- оператор ZERO FILL
перемещает биты вправо, отбрасывает правый правый бит и назначает крайний левый бит значение 0. Каждое движение вправо эффективно делит op1 пополам. Самый старший бит бит отбрасывается.