ES6 Spec文档的UnaryExpression是什么意思?

时间:2019-02-15 07:23:50

标签: javascript typeof

我很好奇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的类型

并找到了这样的答案。

  

https://stackoverflow.com/a/15843896/911528

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

  

规范中对typeof运算符的正确定义是:typeof [(] expression [)]

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

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

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

1 个答案:

答案 0 :(得分:1)

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

当包装一元表达式时,解析器将忽略括号。因此,typeof(i)(i)++分别等效于typeof ii++

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