title: Why is NaN === NaN false?
body: <p>Why does <code>NaN === NaN</code> return <code>false</code>  in Javascript?</p>
  <pre><code>&gt; undefined === undefined
  true
  &gt; NaN === NaN
  false
  &gt; a = NaN
  NaN
  &gt; a === a
  false
  </code></pre>
  <p>On the <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN" rel="noreferrer">documentation page</a> I see this:</p>
  <blockquote>
  <h2>Testing against NaN</h2>
  <p>Equality operator (<code>==</code> and <code>===</code>) cannot be used to test a value against <code>NaN</code>. Use <code>isNaN</code> instead.</p>
  </blockquote>
  <p>Is there any reference that answers to the question? It would be welcome.</p>