?uem/p1-90`文法中允许 yield 和 await 作为
let
await 0;
yield 或 await 之外的任何 对
在yield 可以用作标识符。对 yield 的绑定。
当处理产生式
的实例时,使用以下文法进一步细化对
this 关键字有关
false,则返回 true,则返回 数组元素可以在元素列表的开头、中间或结尾省略。只要元素列表中的逗号之前没有
使用
对象初始化器是描述 Object 初始化的表达式,以类似字面量的形式书写。它是由花括号包围的零个或多个
有关
本规范其他位置存在
具体而言,在期望实际
例如,考虑:
let o = {f = 1};
{f = 1} 被解析为带有
相比之下,考虑:
({f = 1} = {f: 2});
这里,{f = 1} 最初同样被解析为带有 {f = 1} 会被重新解析为带有
有关
有关
有关
有关
有关
参见
d、g、i、m、s、u、v 或 y 之外的任何码点,则返回 u,则令 u 为 v,则令 v 为 如果 escapes 是
创建模板对象不会产生
本规范未来的版本可能会定义模板对象的其他不可枚举属性。
应用于 String.prototype.concat,而不是 + 运算符。
应用于 String.prototype.concat,而不是 + 运算符。
应用于 String.prototype.concat,而不是 + 运算符。
此算法不会对 delete 和 typeof 等运算符应用于括号表达式。
当处理产生式
的实例时,使用以下文法进一步细化对
此产生式的存在是为了防止自动分号插入规则(
a?.b
`c`
从而使其被解释为两个有效语句。其目的是与没有可选链的类似代码保持一致:
a.b
`c`
后者是有效语句,并且不会应用自动分号插入。
属性按名称访问,可以使用点表示法:
或者使用方括号表示法:
点表示法可以通过以下句法转换来解释:
其行为等同于
类似地
其行为等同于
其中 <identifier-name-string> 是
a[b] = c,直到对 c 求值之后才会执行。new 运算符执行步骤
super 关键字super[b] = c,直到对 c 求值之后才会执行。对参数列表求值会产生值的
?. 开始。import()
带标签模板是一种函数调用,其调用参数派生自
宿主定义的抽象操作 HostGetImportMetaProperties,接收参数 moduleRecord (import.meta 返回的对象提供
HostGetImportMetaProperties 的默认实现返回新的空
宿主定义的抽象操作 HostFinalizeImportMeta,接收参数 importMeta (Object) 和 moduleRecord (import.meta 返回的对象。
大多数
HostFinalizeImportMeta 的默认实现返回
当处理产生式
的实例时,使用以下文法进一步细化对
delete 运算符
如果派生的
并且
最后一条规则意味着,诸如 delete (((foo))) 之类的表达式会由于递归应用第一条规则而产生
当 delete 运算符出现在delete 运算符出现在
void 运算符即使不使用其值,也必须调用
typeof 运算符+ 运算符一元 + 运算符将其操作数转换为
- 运算符一元 - 运算符将其操作数转换为数值,然后对其取负。对
~ )! )* 运算符执行乘法,产生其操作数的乘积。/ 运算符执行除法,产生其操作数的商。% 运算符产生其操作数进行隐含除法所得的余数。+ )加法运算符执行
- )- 运算符执行减法,产生其操作数之差。
<< )对左操作数执行按位左移操作,移动量由右操作数指定。
>> )对左操作数执行符号位填充的按位右移操作,移动量由右操作数指定。
>>> )对左操作数执行零填充的按位右移操作,移动量由右操作数指定。
对关系运算符求值的结果始终为
需要 [In] 文法参数,以避免将关系表达式中的 in 运算符与 for 语句中的 in 运算符混淆。
步骤 instanceof 运算符语义。如果对象既未定义也未继承 instanceof 语义。
对相等运算符求值的结果始终为
相等运算符维持以下不变量:
A != B 等价于 !(A == B)。
A 和 B 的求值顺序外,A == B 等价于 B == A。
相等运算符并不总是具有传递性。例如,可能存在两个不同的 String 对象,每个都表示相同的 String 值;通过 == 运算符,每个 String 对象都被视为等于该 String 值,但这两个 String 对象彼此并不相等。例如:
new String("a") == "a" 和 "a" == new String("a") 都是 new String("a") == new String("a") 是 String 的比较对码元值序列使用简单相等测试。不会尝试使用 Unicode 规范中定义的更复杂、面向语义的字符或字符串相等性及
&& 或 || 运算符产生的值不一定是
? : )ECMAScript 中
| assignmentOpText | opText |
|---|---|
**= | ** |
*= | * |
/= | / |
%= | % |
+= | + |
-= | - |
<<= | << |
>>= | >> |
>>>= | >>> |
&= | & |
^= | ^ |
|= | | |
**、*、/、%、+、-、<<、>>、>>>、&、^ 或 |)) 和 rightValue (
+,则**,则返回 ? /,则返回 ? %,则返回 ? >>>,则返回 ? | opText | operation |
|---|---|
* | |
+ | |
- | |
<< | |
>> | |
& | |
^ | |
| | |
| opText | operation |
|---|---|
** | |
* | |
/ | |
% | |
+ | |
- | |
<< | |
>> | |
>>> | |
& | |
^ | |
| | |
在步骤
步骤
**、*、/、%、+、-、<<、>>、>>>、&、^ 或 |)) 和 rightOperand (
在某些情况下,当处理产生式
的实例时,使用以下文法进一步细化对
通过在访问迭代器或对
, )即使不使用其值,也必须调用