内置JavaScript类型名称的大小写
在JavaScript中,内置JavaScript类型名称的大小写,javascript,naming,built-in-types,Javascript,Naming,Built In Types,在JavaScript中,typeof 0给出的'number'不是'number',而是0 number的实例 可以准确地说内置类型的规范名称是大写的,而typeof的小写返回值是一种怪癖/不一致性,由于历史原因无法更改,但如果可以的话会更改吗?还是我遗漏了什么 实际上,number是内置的值类型,其中number是一个对象 如果您说typeof,则无需临时将0转换为对象 如果使用instanceof,它会临时将0转换为对象 这与处理字符串的操作类似: “sometest”=>这是一个字符串
typeof 0
给出的'number'
不是'number'
,而是0 number的实例
可以准确地说内置类型的规范名称是大写的,而typeof
的小写返回值是一种怪癖/不一致性,由于历史原因无法更改,但如果可以的话会更改吗?还是我遗漏了什么
实际上,number是内置的值类型,其中number是一个对象
如果您说typeof,则无需临时将0转换为对象
如果使用instanceof,它会临时将0转换为对象
这与处理字符串的操作类似:
“sometest”
=>这是一个字符串
但是,如果要执行“sometest”.toLowerCase()
,它将首先(临时)将字符串转换为字符串对象,然后调用该对象上的方法(因为值类型不能有方法)
简言之,小写表示值类型,大写表示对象Dunno,但Javascript中的约定是构造函数以大写字母开头,数字是构造函数(或者严格地说,是可以作为构造函数调用的函数),因此大写。请注意,typeof new Number()
返回object
:-)这里的区别在于对象类型和值类型。如果你看一看第4.3.9节到第4.3.21节,你会发现是空类型和空值,布尔类型和布尔值。。。有点让人困惑的是,他们在规范中不一致地使用大写和小写。它一致地使用“数字类型”,但在ES5中不使用小写的“数字类型”。它还一致地在伪代码中使用类型(x)。我删除了我之前的评论,因为这是断章取义的:引用的是规范类型,而不是一般的类型。