title: Bitwise operations on non numbers
body: <p>Somehow, JavaScript makes sense of the <a href="https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators">bitwise operations</a> <code>NaN ^ 1</code>, <code>Infinity ^ 1</code> and even <code>'a' ^ 1</code> (all evaluate to <code>1</code>).</p>
  
  <p>What are the rules governing bitwise operators on non numbers? Why do all the examples above evaluate to <code>1</code>?</p>