1是javascript中的对象吗?

1是javascript中的对象吗?,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)

我想知道在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
所以。。。有人能告诉我这个问题是否可以回答吗

如果文本1和新数字(1)具有相同的构造函数,javascript如何区分它们?JS只是在骗我说他们有相同的构造函数吗

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


有人能引导我通过我所看到的吗?因为对我来说有意义的是Javascript中有不同的对象层次结构,而JS在文本的构造函数方面对我撒谎…

1
是一个原语,因为它是一个数字

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

  • 布尔值
  • 空的
  • 未定义
  • 象征

一切都是对象。

查看这本关于javascript类型的免费书籍:我认为答案通常是“视情况而定”。javascript既有“本机”数字类型,也有“盒装”数字类型,它可以在它们之间转换,大概使用与类型强制一样神秘的规则。这不是概念吗,没有通过构造函数显式调用的数字或字符串被视为标量类型?另外,使用
new
作为构造函数调用函数,以及不使用
new
作为函数调用函数,可能会产生不同的效果。调用
Number()
而不调用
new
只会将给定参数转换为基元数。文本/基元没有构造函数,但在需要时会隐式装箱:。Javascript并没有“撒谎”他们的构造函数,他们没有任何构造函数,也没有任何属性,但是任何访问属性的尝试都会在其对象对应项中包含一个原语。实际上,
symbol
也是一个原语<代码>空类型=>“对象”
对象的符号实例
返回真值。。。。“除了
null
undefined
之外,所有基本值都有围绕基本值的对象等价物……”@vlad ardelan:object的
数字实例也是如此。但这并不意味着
1
是一个对象。