Possible Duplicate:
Why does instanceof return false for some literals?
Does anyone know why x is not a instance of String/Object here?
var x = "abc",
y = new String("XYZ");
x instanceof String; // False
x instanceof Object; // False
y instanceof String; // True
(x.constructor === y.constructor) //True