ES6 规范文档的 UnaryExpression 是什么意思?

What's the meaning of UnaryExpression of ES6 Spec documentation?

我很好奇 ES6 规范文档中 UnaryExpression 的含义。 https://www.ecma-international.org/ecma-262/6.0/#sec-typeof-operator

其实我很好奇为什么typeof运算符既可以接受不带括号的操作数,也可以接受带括号的操作数。
ex) typeof a / typeof (a)

所以我在互联网上搜索,发现 ES6 规范文档指导我 typeof 运算符可以接受 UnaryExpression。

UnaryExpression : typeof UnaryExpression

并且还发现了这个 SO 答案。

在本文中,用户 Halim Qarroum 回答,

The correct definition for typeof operator in the specification is : typeof[(]expression[)]

我不知道UnaryExpression的确切含义。 (我找不到。是的,定义在那里,但它们太抽象了。)

而且我很好奇 Halim Qarroum 如何仅通过查看规范文档就可以推断出该答案。

[(]expression[)] 是否等于 UnaryExpression? [] 是否表示可省略?

一元表达式是只有一个标记的表达式。 一元运算符(例如 typeof++)将一元表达式作为操作数。

括号在包裹一元表达式时会被解析器忽略。因此,typeof(i)(i)++ 分别等同于 typeof ii++

是的,在开发人员文档中,方括号表示可选内容。通常用于可选函数参数,但在您引用的答案中可以理解。