Dlaczego instanceof zwraca false dla niektórych literałów?

"foo" instanceof String //=> false
"foo" instanceof Object //=> false
true instanceof Boolean //=> false
true instanceof Object //=> false
false instanceof Boolean //=> false
false instanceof Object //=> false

// the tests against Object really don't make sense

Literały tablicowe i literały obiektów są zgodne ...

[0,1] instanceof Array //=> true
{0:1} instanceof Object //=> true

Dlaczego nie wszystkie? Albo dlaczego nie wszyscynie?
A zatem, czego oni są przykładem?

Tak samo jest w FF3, IE7, Operze i Chrome. Tak przynajmniej jest spójne.

Brakowało kilku.

12.21 instanceof Number //=> false
/foo/ instanceof RegExp //=> true

questionAnswers(9)

yourAnswerToTheQuestion