Que font les opérateurs << et >>?

J'ai rencontré un certain code comme indiqué ci-dessous et je suis confus quant à ce qu'il fait.

hash += (hash << 10); 

C'est un opérateur Bitwise .

Voici un exemple du MDN (lié à ci-dessus):

  9 (base 10): 00000000000000000000000000001001 (base 2) -------------------------------- 9 << 2 (base 10): 00000000000000000000000000100100 (base 2) = 36 (base 10) 

Voyez comment les 1s ont changé?

C'est l'un des opérateurs Bitwise JavaScript:

Décalage à gauche

A << b

Déplace une représentation binaire b (<32) bits vers la gauche, en changeant de zéros à droite.