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

随着 Safari 中输入文本的变化,输入类型文本下方的 div 上下移动

构造函数作为对象键

Javascript 通过从数组值中仅选择真值来更改值

如何获取html树的#text节点数组

如何使用 Jquery 访问 JSON 的“对象”部分?

使用按钮单击保存项目变量

如何让带有 p5.js 的 Pix2Pix 运行?

如何对齐左侧、叠加和全高侧导航菜单

这个在 express 中接收 RequestHandler 的函数是如何工作的?

未在 process.env 中定义的 Firebase 机密

在 Javascript 中shuffle 嵌套数组

为什么我的 Select 的 MenuProps 中的 PaperProps 中的样式不适用于选择

切换暗模式 - 新创建元素的问题

使用谷歌脚本应用程序获取帖子的“401错误代码”

如何将对象键设置为公分母?

Svelte 仅支持 es6+ 语法.将“compilerOptions.target”设置为“es6”或更高

Minimax算法在国际象棋中不适合队友

TypeError: doc 不是 addSubCollectionDocument 中的函数

React - 从子组件更新状态,然后根据状态做一些事情

.push( ) 没有更新变量