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

Javascript ES6规范文档的UnaryExpression是什么意思?,javascript,typeof,Javascript,Typeof,我很好奇ES6规范文档的UnaryExpression的含义。 实际上,我想知道为什么typeof运算符既可以接受不带括号的操作数,也可以接受带括号的操作数。 a的前类型/a的类型 所以我在互联网上搜索,发现ES6规范文档指导我typeof操作符可以接受UnaryExpression 一元表达式:一元表达式的类型 并且也找到了这样的答案 在本文中,用户Halim Qarroum回答说 规范中typeof运算符的正确定义是:typeof[]表达式[] 我不知道一句话的确切意思。 我不知道。是的,

我很好奇ES6规范文档的UnaryExpression的含义。

实际上,我想知道为什么typeof运算符既可以接受不带括号的操作数,也可以接受带括号的操作数。 a的前类型/a的类型

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

一元表达式:一元表达式的类型

并且也找到了这样的答案

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

规范中typeof运算符的正确定义是:typeof[]表达式[]

我不知道一句话的确切意思。 我不知道。是的,定义在那里,但它们太抽象了

我很好奇Halim Qarroum是如何通过查看规范文档推断出答案的

[]表达式[]是否等于一元表达式?
[]是否表示可省略?

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

在包装一元表达式时,解析器将忽略括号。因此,typeofi和i++分别相当于typeofi和i++


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

该答案已过时。源链接指向MSDN,MSDN又指向MDN,MDN表示语法为操作数类型。没有帕伦斯。可以添加paren来提高可读性或强制执行优先级。@SalmanA,即使我在这里引用的SO链接已经过时,但我认为我的问题没有过时。我想问一下ES6规范文档中的UnaryExpression。勒罗伊·斯塔夫完美地回答了我。你告诉了我我想知道的一切。非常感谢你!你能告诉我更多关于代币的情况吗?一元表达式是一个只有一个标记的表达式。在这一段中,我不清楚“标记”的确切含义。标记是字符串的一部分。例如,如果在javascript中执行someString.split“”,则将someString拆分为标记,并用空格分隔。在语言编译方面,当描述表达式和语句等东西时,其中一件事是源代码中的哪些标记与什么底层机制相关?因此,只有一个标记的表达式应该是当我们正在查看的代码部分预期是一个表达式时,并且该表达式最终将是一个引用,特别是您复制的ES6文档,UnaryExpression:typeof UnaryExpression基本上可以转换为以下内容:代码中typeof UnaryExpression的任何实例也被认为是一个UnaryExpression。此外,调用typeof的唯一可接受的方法是当操作数是一元表达式时。此外,如中所述,任何表达式都可以封装在括号中并产生自身。因此,typeof i和typeof i`在功能上是等价的,并且实际上产生了相同的抽象语法树,这一点要清楚得多。所以现在我明白为什么typeof I和typeof I是一样的了。而且,我能找出为什么我也在工作。再次感谢你。你真的很擅长理解我的观点。