false "foo" instanceof Object //=> false true instanceof Boolean //=> f-6ren">
gpt4 book ai didi

javascript - 为什么 instanceof 对某些文字返回 false?

转载 作者:行者123 更新时间:2023-11-30 06:39:51 28 4
gpt4 key购买 nike

"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 docs :

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 - 为什么 instanceof 对某些文字返回 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12254658/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com