?um/p1-90`
yield および await は、文法上は
let
await 0;
yield または await を除く任意の
The
yield
は識別子として使用できる。
yield の束縛を解決
する。Early Error 制約により、そのような評価は
次の production の instance を処理するとき
this Keyword
false なら、
true なら、
Array element は element list の先頭・中
間・末尾で省略され得る。element list 内の comma
の直前に
The
object initializer は、literal に似た形
で記述される、Object の初期化を記述する式である。これ
は、0 個以上の
ある文脈では、
実際の object initializer を記述することに加え
て、
この production は、
The
The
The
The
The
d, g, i, m, s,
u, v, y 以外の code point を
含むなら、u を含むなら、u を
v を含むなら、v を
The
The
この操作は、raw が
The
template object の作成は
この仕様の将来版では、template object の追 加の non-enumerable property が定義されることが ある。
The
+ 演算子というより
String.prototype.concat に近い。
+ 演算子というより
String.prototype.concat に近い。
+ 演算子というより
String.prototype.concat に近い。
この algorithm は delete や typeof のような演算子を括弧付き
式へ適用できるようにすることである。
次の production の instance を処理するとき
この production は、次の code に対して自
動セミコロン挿入規則
(
a?.b
`c`
そうでなければ、それが 2 つの妥当な文として解釈さ れてしまうからである。目的は、optional chaining を 持たない類似 code との一貫性を維持することである:
a.b
`c`
これは妥当な文であり、自動セミコロン挿入は適用され ない。
property は、名前によってアクセスされ、次のよう な dot notation を用いる:
または、次のような bracket notation を用い る:
dot notation は、次の構文変換によって説明され る:
これは、その振る舞いにおいて次と同一である:
同様に
これは、その振る舞いにおいて次と同一である:
ここで <identifier-name-string> は
The
a[b] = c の場合、それは c の評価後
まで実行されない。The
new OperatorThe
step
The
super Keywordsuper[b] = c の場合、それは c の
評価後まで実行されない。The
The
argument list の評価は、値の
The
?. で始まるものであ
る。The
The
The import()
tagged template は function call であ
り、その call の引数は
The import.meta から返される
object に対する
HostGetImportMetaProperties の default
implementation は、新しい空の
The import.meta から返される
object を準備するために、任意の特別な操作を実行できるよ
うにする。
ほとんどの
HostFinalizeImportMeta の default
implementation は
delete Operator
導出された
であり、かつ
最後の規則は、delete (((foo))) のような式
が、最初の規則の再帰的適用により
delete 演算子が delete
演算子が
step
void Operator
typeof Operator+ Operator
単項 + 演算子は、その operand を
- Operator
単項 - 演算子は、その operand を数値へ変換
し、その後それを negate する。
~ )! )* 演算子は乗算を行い、その operand の積
を生成する。/ 演算子は除算を行い、その operand の商
を生成する。% 演算子は、暗黙の除算における operand
の余りを生成する。+ )加算演算子は、文字列連結または数値加算のいずれかを行 う。
- )
- 演算子は減算を行い、その operand の差
を生成する。
<< )左 operand に対して、右 operand によって指 定された量だけ bitwise left shift を行う。
>> )左 operand に対して、右 operand によって指 定された量だけ、符号拡張を伴う bitwise right shift を行う。
>>> )左 operand に対して、右 operand によって指 定された量だけ、0 埋めの bitwise right shift を 行う。
relational operator の評価結果は常に
[In] 文法 parameter は、
relational expression における in 演算子と、
for 文における in 演算子とを混同しないために必
要である。
The
steps
instanceof 演算子の意味論を定義するのに
instanceof 意味論を用い
る。
equality operator の評価結果は常に
equality operator は次の不変条件を維持す る:
A != B は !(A == B) と等価である。
A == B は、A と B の評価順序を除け
ば、B == A と等価である。
equality operator は常に推移的であるわけ
ではない。たとえば、同じ String 値を表す 2 つの異な
る String object があり得る; それぞれの String
object は == 演算子によりその String 値と等しい
と見なされるが、2 つの String object 同士は互いに
等しくはない。たとえば:
new String("a") == "a" および
"a" == new String("a") はどちらも
new String("a") == new String("a")
は String の比較は、code unit 値列に対する単純 な等値判定を用いる。Unicode 仕様で定義される、より複 雑で意味論指向の文字または文字列の等値性および照合順序の 定義を使用しようとはしない。したがって、Unicode Standard によれば正準同値である String 値が、不 等であると判定され得る。実質的に、この algorithm は 両方の String がすでに正規化済みであると仮定してい る。
&& または || 演算子が生成する値は、
必ずしも
? : )
ECMAScript における
| assignmentOpText | opText |
|---|---|
**= | ** |
*= | * |
/= | / |
%= | % |
+= | + |
-= | - |
<<= | << |
>>= | >> |
>>>= | >>> |
&= | & |
^= | ^ |
|= | | |
この式が
The **, *, /, %, +, -, <<, >>, >>>, &, ^, or |), and rVal (an ECMAScript language value) and returns either a
+ なら、** なら、
? / なら、
? % なら、
? >>> なら、
? | opText | operation |
|---|---|
* | |
+ | |
- | |
<< | |
>> | |
& | |
^ | |
| | |
| opText | operation |
|---|---|
** | |
* | |
/ | |
% | |
+ | |
- | |
<< | |
>> | |
>>> | |
& | |
^ | |
| | |
steps
step
The **, *, /, %, +, -, <<, >>, >>>, &, ^, or |), and rightOperand (a
ある特定の状況において、次の production の
instance を処理するとき
The
The
The
The
destructuring pattern ではない
The
, )