typeof('abc')和typeof 'abc'都是string, 那么typeof是操作符还是函数?

typeof 是一个操作符(operator),而不是函数。

虽然它的语法看起来像函数调用 typeof(something),但这只是可选的语法。括号在这里不是必需的,并且不改变 typeof 的行为。 使用括号时,括号内的表达式会被求值,然后 typeof 操作符作用于结果值。

核心区别在于:函数调用需要一个函数对象和参数列表,而 typeof 直接作用于一个操作数。 它不需要函数调用那样的求值过程。

所以,typeof 'abc'typeof('abc') 都返回 "string",并且 typeof 始终是一个操作符。 括号只是为了代码清晰度或在处理复杂表达式时消除歧义,例如:

typeof(1 + '2') // "string"

如果没有括号,会变成:

typeof 1 + '2' // "number2"

因为 + 的优先级高于 typeof

总结:typeof 是操作符,括号只是语法上的灵活性,不改变其本质。

posted @ 2024-11-21 12:26  王铁柱6  阅读(21)  评论(0)    收藏  举报