title: why javascript let NaN can be overrided in function?
body: <p><em>I tested this code in chrome 56</em></p>
  
  <p>I just found this weird code.</p>
  
  <p>if I type this code in console <code>const NaN = '';</code></p>
  
  <p>I got this message that I expected. <code>Uncaught SyntaxError: Identifier 'NaN' has already been declared at &lt;anonymous&gt;:1:1</code></p>
  
  <p>but, if I override NaN keyword in function, like this</p>
  
  <p><code>function a(){ const NaN = ''; return NaN; }</code></p>
  
  <p>it returns empty string <code>''</code></p>
  
  <p>why javascript let keywords can be overrided in function?</p>