Au niveau du bit les opérateurs traitent leurs opérandes comme ensemble de 32 bits (des zéros et ceux), plutôt qu'en tant que nombres décimaux, hexadécimaux, ou octals.

Par exemple, le numéro décimal neuf a une représentation binaire de 1001. Au niveau du bit les opérateurs exécutent leurs exécutions sur de telles représentations binaires, mais ils renvoient des valeurs numériques standard de JavaScript.

Opérateur Usage Description Exemple
AND $x & $y Chaque position binaire de l'opérande $x est comparée avec la position correspondante de l'opérande $y. Dans ce cas, si un 1 est trouvé dans l'une ou l'autre des opérandes, alors l'opérateur retourne un 1, sinon il renvoie un 0. 1101 & 0111
//retourne 0101
0001 & 1000
//retourne 0000
1001 & 0001
//retourne 0001
OR $x | $y Chaque position binaire de l'opérande $x est comparée avec la position correspondante de l'opérande $y. Dans ce cas, si un 1 est trouvé dans les deux opérandes soit dans l'une, soit dans l'autre, alors l'opérateur retourne un 1, sinon il renvoie un 0. 1101 | 0111
//retourne 1111
0001 | 1000
//retourne 1001
1001 | 0001
//retourne 1001
XOR $x ^ $y Cette opérateur OU EXCLUSIF fonctionne comme le précédent à la seule exception que le 1 ne doit se trouver que dans l'une ou l'autre des opérandes pour produire le résultat 1 sinon il renvoie un 0. 1101 ^ 0111
//retourne 1010
0001 ^ 1000
//retourne 1001
1001 ^ 0001
//retourne 1000
NOT ~ $a L'opérateur unaire NOT retourne un 0 lorsque l'opérande contient un 1 et un 1 pour un 0. ~1101
//retourne 0010
~0001
//retourne 1110
~1001
//retourne 0110
Décalage à gauche $x << n Cet opérateur déplace la représentation binaire de $x de n bits à gauche. La valeur de ces n bits est de zéro. 15 << 2
/* 0000 1111 décalé de 2 bits
produit 0011 1100
et donc retourne 60
Décalage à droite
avec préservation
du signe
$x >> n Cet opérateur déplace la représentation binaire de $x de n bits à droite et conserve le signe. 15 >> 2
/* 0000 1111 décalé de 2 bits
produit 0000 0011
et donc retourne 3 */

-15 >> 2
/* 11111 0001 décalé de 2 bits
produit 1111 1100
t donc retourne -4 */