"foo" instanceof String //=> false
"foo" instanceof Object //=> false
true instanceof Boolean //=> false
true instanceof Object //=> false
false instanceof Boolean //=> false
false instanceof Object //=> false
12.21 instanceof Number //=> false
/foo/ instanceof RegExp //=> true
// the tests against Object really don't make sense
数组字面量和对象字面量匹配…
[0,1] instanceof Array //=> true
{0:1} instanceof Object //=> true
为什么不是所有人?或者,为什么不都不呢?
那么,它们是什么实例呢?
在FF3、IE7、Opera和Chrome中也是如此。至少它是一致的。
原语是一种不同于Javascript中创建的对象的类型。来自Mozilla API文档:
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。
记住这些事情的一个简单方法是问自己“我想知道什么是理智的和容易学的”?不管答案是什么,Javascript做的是另一件事。
原语是一种不同于Javascript中创建的对象的类型。来自Mozilla API文档:
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。
记住这些事情的一个简单方法是问自己“我想知道什么是理智的和容易学的”?不管答案是什么,Javascript做的是另一件事。