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 是操作符,括号只是语法上的灵活性,不改变其本质。
浙公网安备 33010602011771号