#### Consider these variants:

<ol>
  <li>
    100% consistent between strict and unstrict mode:
    <pre><code>if ( typeof element === 'number' ) element = null == this ? window : this.valueOf();</code></pre>
  </li>
  <li>
    Throws error in strict mode if <code>this == null</code> but is consistent between modes for other cases:
    <pre><code>if ( typeof element === 'number' ) element = this.valueOf();</code></pre>
  </li>
  <li>
   Needs an extra check to make tagnames work in unstrict mode <b>and</b> the default differs between modes:
    <pre><code>if ( typeof element === 'number' ) element = this;<br>if ( element instanceof String ) element = '' + element;</code></pre>
  </li>
</ol>