我很好奇ES6 Spec文档的UnaryExpression的含义。 https://www.ecma-international.org/ecma-262/6.0/#sec-typeof-operator
实际上,我想知道为什么typeof运算符可以接受两个不带括号的操作数,也可以接受带括号的操作数。
例如)typeof a / typeof(a)
因此,我在互联网上进行搜索,发现ES6规范文档指导我typeof运算符可以接受UnaryExpression。
UnaryExpression:UnaryExpression的类型
并找到了这样的答案。
在本文中,用户Halim Qarroum回答了
规范中对typeof运算符的正确定义是:typeof [(] expression [)]
我不知道UnaryExpression的确切含义。 (我找不到。是的,那里有定义,但它们是如此抽象。)
我很好奇Halim Qarroum如何仅通过查看规范文档就可以推断出答案。
[(] expression [)]等于UnaryExpression吗? []表示可省略吗?
答案 0 :(得分:1)
一元表达式是只有一个标记的表达式。
一元运算符(例如typeof
或++
)将一元表达式作为操作数。
当包装一元表达式时,解析器将忽略括号。因此,typeof(i)
和(i)++
分别等效于typeof i
和i++
。
是的,在开发人员文档中,方括号表示可选内容。通常用于可选的函数参数,但在您引用的答案中是可以理解的。