"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

Why don't all of them? Or, why don't they all not?
And, what are they an instance of, then?

在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相关问答推荐

如何从隐藏/显示中删除其中一个点击?

可更改语言的搜索栏

更改预请求脚本中重用的JSON主体变量- Postman

如何将innerHTML字符串修剪为其中的特定元素?

为什么客户端没有收到来自服务器的响应消息?

在不扭曲纹理的情况下在顶点着色器中旋转UV

如何根据查询结果重新排列日期

MongoDB中的嵌套搜索

Reaction useState和useLoaderData的组合使用引发无限循环错误

AG-GRIDreact 显示布尔值而不是复选框

ComponentWillReceiveProps仍在React 18.2.0中工作

重新渲染过多(&Q).REACT限制渲染次数以防止无限循环.使用REACT下拉菜单时

不允许在对象文本中注释掉的属性

在JS/TS中构造RSA公钥

Js问题:有没有办法将数据从标记表转换成图表?

2.0.0-dev quill拖动文本不起作用如何使其拖动文本

无限循环,因为变量不断被重新声明为其原始值

JavaScript原型排序函数不会与所有成员进行比较

如何将类列表切换应用到具有相同类的多个按钮?

当其分配的变量被更改或更新时,react 状态将被更新