Я работаю с node.js, поэтому это может быть специфично для V8.
Я всегда замечал некоторые странности с различиями между typeof и instanceof, но вот тот, который действительно меня беспокоит:
var foo = 'foo';
console.log(typeof foo);
Output: "string"
console.log(foo instanceof String);
Output: false
Что там происходит?