title: Why does String(null) work?
body: <p><code>null</code> and <code>undefined</code> don't have a <code>toString</code> or <code>valueOf</code> method. Afaik using <code>String</code> calls the <code>toString</code> method of its parameter (e.g. <code>String({})</code> => <code>[object Object]</code>). </p>
  
  <p>Why do <code>String(null)</code> or <code>String(undefined</code> work then? It doesn't implicitly do <code>Object.prototype.toString.call(null)</code>. because that evaluates to <code>[object Null]</code>.</p>
  
  <p>[edit]: from the spec ECMA-262/5th edition (page 48). This doesn't add to clarification, I'd say:</p>
  
  <pre><code>/*
  Table 13 — ToString Conversions  
  -------------------------------------------------------------------------
  Argument Type  | Result  
  -------------------------------------------------------------------------
  Undefined      | "undefined"
  Null           | "null"  
  Boolean        | If the argument is true, then the result is "true".
  ...            | ...
  */
  </code></pre>