0

In JavaScript, typeof 0 gives 'number' not 'Number', but instanceof 0 Number.

Would it be accurate to say the canonical names of the built-in types are capitalized, and the lowercase return value of typeof is a quirk/inconsistency that can't be changed for historical reasons, but would be changed if it could be? Or am I missing something?

4

1 回答 1

1

不,

实际上 number 是内置值类型,其中 Number 是一个对象。

如果您说 typeof,则无需临时将 0 转换为 Object。

如果使用 instanceof,它会暂时将 0 转换为对象。

这类似于您对字符串执行的操作:

"sometest"=> 这是一个字符串

但是,如果您愿意"sometest".toLowerCase(),它将首先(临时)将字符串转换为字符串对象,然后调用该对象上的方法(因为值类型不能有方法)。

简而言之,小写表示值类型,大写表示对象

于 2013-04-17T23:14:42.627 回答