javascript - 1 是 JavaScript 中的对象吗?

标签 javascript

我想知道 JavaScript 中什么被视为对象,以便我可以回答数字文字 1(或任何其他文字)是否是对象的简单问题。

我尝试过这些

typeof 1
> "number"

1 instanceof Number
> false

Number(1) instanceof Number
> false

Number(1) instanceof Object
> false

Number instanceof Object
> true

new Number(1) instanceof Object
> true

new Number(1) instanceof Number
>true

(1).constructor
> ƒ Number() { [native code] }

(1).constructor.constructor
> ƒ Function() { [native code] }

(1).constructor.constructor.constructor
> ƒ Function() { [native code] }

(1).constructor.constructor.constructor.constructor
> ƒ Function() { [native code] }

Function instanceof Object
> true

1 === Number(1)
> true

1 === new Number(1)
> false

(1).constructor
> ƒ Number() { [native code] }

(new Number(1)).constructor
> ƒ Number() { [native code] }

Number.constructor
> ƒ Function() { [native code] }

Function instanceof Object
> true

那么...谁能告诉我这个问题是否可以回答?

javascript 如何区分文字 1 和 new Number(1)如果他们有相同的构造函数? JS 是否只是骗我说它们具有相同的构造函数?

什么是对象? 也许这并不重要,但我很好奇这是否有某种基于规则的答案。

任何人都可以指导我了解我所看到的内容吗?因为对我来说有意义的是 Javascript 中有不同的对象层次结构,而 JS 在文字的构造函数方面对我撒谎......

最佳答案

1 是一个基元,因为它是一个数字。

在 javascript 中有 6 种不同的类型或原语:

  • bool 值
  • 数量
  • 字符串
  • 未定义
  • 符号

其他一切都是对象。

关于javascript - 1 是 JavaScript 中的对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46198410/

相关文章:

javascript - 从字符串 JavaScript 中提取数字

javascript - Node.js - "Cannot find module ' module.js'“

javascript - 如何从 Html Select 标签中隐藏第一项

javascript - Angular : Binding ngrepeat values to model in AngularJS

javascript - HighCharts系列Z指数

javascript - 谷歌地图 - 使用自定义 json 样式*和* TERRAIN View

Javascript 在 html 文件和外部脚本文件中使用 onload 两次

javascript - 对于帖子请求,pace-rails 不显示

javascript - Socket.io - 旧版本的 app.js 到新版本的 socket.io

javascript - 如何以正确的格式打印 2 个数组的值