Javascript 为什么称typeof为运算符而不是函数?

Javascript 为什么称typeof为运算符而不是函数?,javascript,operators,Javascript,Operators,在MDC中阅读这篇文章()时,我遇到了一个问题,比如为什么typeof、new、等被称为操作符 我有一个概念说,+是一个运算符,因为它对两个实体(如2+3)进行运算,并给出另一个值 当然,函数也以同样的方式在两个实体上运行 那有什么区别呢 谢谢你的回答。不,作为一个运算符并不意味着它是否有两个操作数——这是一元运算符和二元运算符之间的区别(还有三个操作数的条件运算符,这是三元运算符的一个示例)。例如,+也可以是一元运算符: var x = +5; 你可以把操作符归类为“内置函数”。JavaSc

在MDC中阅读这篇文章()时,我遇到了一个问题,比如为什么
typeof、new、
等被称为操作符

我有一个概念说,
+
是一个运算符,因为它对两个实体(如
2+3
)进行运算,并给出另一个值

当然,函数也以同样的方式在两个实体上运行

那有什么区别呢


谢谢你的回答。

不,作为一个运算符并不意味着它是否有两个操作数——这是一元运算符和二元运算符之间的区别(还有三个操作数的条件运算符,这是三元运算符的一个示例)。例如,+也可以是一元运算符:

var x = +5;
你可以把操作符归类为“内置函数”。JavaScript引擎本身就知道它们,它们是语言的一部分,而不仅仅是库功能。(虽然操作符经常会被库重载,这取决于语言。我不知道JavaScript是否支持操作符重载,请随便说。)


在某些情况下(以JavaScript为例),语言和标准库之间有点模糊,但想想
typeof
将什么作为操作数:它是类型的名称。这不是你通常可以用来作为函数参数的东西;它需要语言中的特殊支持。

++
也是一个只有一个参数的运算符


其中一个区别是,您不使用参数调用运算符,即您编写
typeof a
newsomeobject()
,而使用
typeu of(a)
调用函数
typeu of
。但是就像Jon说的,你可以把它们看作是内置函数。作为旁注,
myFunc(arg1,arg2)
中的
()
是一个函数应用运算符,即它使用给定的参数调用函数。

@Yi Jiang modified。不再生气:-)JavaScript中
typeof
的操作数是任何对象或原语,而不是特定类型的名称。不,JavaScript不支持运算符重载。Jon,你做JavaScript吗?()是一个“函数调用”运算符。如果你“调用带参数的函数”或“将函数应用于参数”只是一个措辞问题。但是当然,考虑到javascript中可用的
function.call()
方法,也许您的措辞更可取。。。