title: Primitive data type immutability
body: <p>I know, that all data types (primitives) in Js except objects are immutable.
  So we can't do something:</p>
  <pre><code>let str = 'str';
  str[0] = 't'; //error in strict mode
  </code></pre>
  <p>But we can do following:</p>
  <pre><code>let str = 'str';
  str = null;
  </code></pre>
  <p>why this works and why primitives are immutable and objects are mutable?
  I want to know what happened &quot;under hood&quot; (deep explaining).</p>