“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
数组文字和对象文字匹配…
[0,1] instanceof Array //=> true {0:1} instanceof Object //=> true
为什么不是所有人?或者,为什么不是所有人 都不 呢? 而且,它们是什么实例呢?
在FF3,IE7,Opera和Chrome中相同。因此,至少是一致的。
错过了几个。
12.21 instanceof Number //=> false /foo/ instanceof RegExp //=> true
与从Javascript内部创建的对象相比,基元是另一种类型。从MozillaAPI文档]:
var color1 = new String("green"); color1 instanceof String; // returns true var color2 = "coral"; color2 instanceof String; // returns false (color2 is not a String object)
我找不到用代码构造基本类型的任何方法,也许这是不可能的。这可能就是为什么人们使用typeof "foo" === "string"而不是的原因instanceof。
typeof "foo" === "string"
instanceof
记住这样的事情的一种简单方法是问自己:“我想知道什么是理智且易于学习的”吗?无论答案是什么,JavaScript都会做其他事情。