出于好奇,typeof不是常规方法或函数的原因是什么,而是把它放在变量或数据的前面。
他们这样做:
var something = typeof somethingElse;
而不是:
var something = somethingElse.typeof();
而且,引用typeof和var关键字的正确术语是什么?他们是经营者吗?
答案 0 :(得分:9)
是的,typeof
是一元运算符,例如+
,-
,~
,!
和void
。另一方面,var
是变量声明语句的一部分,并没有它的奇特名称。
我猜测它不是一个方法的原因是双重的:
null
和undefined
上使用它。如果它是常规方法,那么这些方法都不会起作用,并且为特定的方法外观添加特殊异常会很混乱。
答案 1 :(得分:3)
Mozilla docs将typeof称为运算符。根据他们的docs:
typeof运算符返回一个表示其类型的字符串 未评估的操作数。
请注意,它们所谓的并不重要,这是ECMA规范所称的。
根据Mozilla的文档,运算符的类型在JavaScript 1.1和ECMA版本中定义:ECMA-262(以及用于E4X对象的ECMA-357)
如果您感兴趣,ECMA 262 specs for version 5.1(警告 - pdf链接)将在第71页的第11.4.3节中介绍typeof运算符。