title: Why does instanceof return false for some literals?
body: <pre><code>&quot;foo&quot; instanceof String //=&gt; false
  &quot;foo&quot; instanceof Object //=&gt; false
  
  true instanceof Boolean //=&gt; false
  true instanceof Object //=&gt; false
  false instanceof Boolean //=&gt; false
  false instanceof Object //=&gt; false
  
  12.21 instanceof Number //=&gt; false
  /foo/ instanceof RegExp //=&gt; true
  
  // the tests against Object really don't make sense
  </code></pre>
  <p>Array literals and Object literals match...</p>
  <pre><code>[0,1] instanceof Array //=&gt; true
  {0:1} instanceof Object //=&gt; true
  </code></pre>
  <p>Why don't all of them? Or, why don't they all <em>not</em>?<br />
  And, what are they an instance of, then?</p>
  <p>It's the same in FF3, IE7, Opera, and Chrome. So, at least it's consistent.</p>