title: What do the operators ">>" (double arrow) and "|" (single pipe) mean in JavaScript?
body: <p>I saw this in some JS code:</p>
  
  <pre><code>        index = [
              ascii[0] &gt;&gt; 2,
              ((ascii[0] &amp; 3) &lt;&lt; 4) | ascii[1] &gt;&gt; 4,
              ((ascii[1] &amp; 15) &lt;&lt; 2) | ascii[2] &gt;&gt; 6,
              ascii[2] &amp; 63
          ];
  </code></pre>
  
  <p>I'd quite like to know what a lot of this means. Specifically ">>", a single pipe "|" and the "&amp;" symbol on the last line?</p>
  
  <p>Much appreciated!</p>