【发布时间】:2019-02-15 07:23:50
【问题描述】:
我很好奇 ES6 Spec 文档中 UnaryExpression 的含义。 https://www.ecma-international.org/ecma-262/6.0/#sec-typeof-operator
其实我很想知道为什么 typeof 运算符既可以接受不带括号的操作数,也可以接受带括号的操作数。
ex) typeof a / typeof (a)
所以我在互联网上搜索,发现 ES6 Spec 文档指导我 typeof 运算符可以接受 UnaryExpression。
UnaryExpression : UnaryExpression 的类型
并且还发现了这个 SO 答案。
在这篇文章中,用户 Halim Qarroum 回答了,
规范中typeof运算符的正确定义是:typeof[(]expression[)]
我不知道 UnaryExpression 的确切含义。 (我找不到。是的,定义在那里,但它们太抽象了。)
我很好奇 Halim Qarroum 如何仅通过查看规范文档来推断出这个答案。
[(]expression[)] 是否等于 UnaryExpression? [] 是否表示可省略?
【问题讨论】:
-
那个答案已经过时了。源链接指向 MSDN,而 MSDN 又指向 MDN,其语法为
typeof operand。没有括号。可以添加括号以提高可读性或强制执行优先级。 -
@SalmanA 即使我在这里引用的 SO 链接已经过时,但我认为我的问题并没有过时。我在询问 ES6 Spec 文档中的 UnaryExpression。 Leroy Stav 完美地回答了我。
标签: javascript typeof