title: Why is undefined not writable in JavaScript?
body: <p>According to <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/undefined" rel="noreferrer">MDN's documentation on <code>undefined</code></a>:</p>
  
  <blockquote>
    <p>In modern browsers (JavaScript 1.8.5 / Firefox 4+), undefined is a non-configurable, non-writable property per the ECMAScript 5 specification. Even when this is not the case, avoid overriding it.</p>
  </blockquote>
  
  <p>One of the property attributes of <em>undefined</em> is that is not writable.</p>
  
  <p>But if I do:</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>var undefined = 'hello';
  var test = undefined;
  console.log(typeof test);
  //string</code></pre>
  </div>
  </div>
  </p>
  
  <p>Does that mean that I can overwrite the value of <code>undefined</code>? What happens if someone does that? Should JavaScript warn about that?</p>