Edit in JSFiddle

//instanceof does not work on primtive values
console.log("" instanceof String); //logs false
console.log(3 instanceof Number); //logs false
console.log(false instanceof Boolean); //logs false

//instanceof works on complex values (i.e. objects)
console.log(new String() instanceof String); //logs true
console.log(new Number() instanceof Number); //logs true
console.log(new Boolean() instanceof Boolean); //logs true
console.log([] instanceof Array); //logs true
console.log({} instanceof Object); //logs true
console.log(/foo/ instanceof RegExp); //logs true

//be aware
console.log([] instanceof Object); //logs true