?uem/p1-90`yield および await は文法では
let
await 0;
yield または await を除くいずれかの yield を識別子として使用できます。yield の束縛を
次の生成規則のインスタンスを処理するとき
this キーワードfalse である場合、true である場合、Array の要素は、要素リストの先頭、中間、または末尾で省略できます。要素リスト内のコンマの直前に
標準組込み Array プロトタイプオブジェクトが、[[Set]] を使用した新しい自身のプロパティの作成を妨げるように変更されている場合でも、配列に自身のプロパティが確実に定義されるようにするため、
オブジェクト初期化子は、リテラルに似た形式で記述された、Object の初期化を説明する式です。波括弧で囲まれた、0個以上の
この仕様の他の箇所には、特定の状況で
具体的には、実際の
たとえば、次を考えます。
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`
これにより、2つの有効な文として解釈されることを防ぎます。その目的は、オプショナルチェーンを使用しない次の類似コードとの一貫性を保つことです。
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 演算子が現れ、削除されるプロパティが属性 { [[Configurable]]:
void 演算子typeof 演算子+ 演算子単項 + 演算子は、そのオペランドを
- 演算子単項 - 演算子は、そのオペランドを数値に変換してから符号を反転します。
~ )! )* 演算子は乗算を実行し、オペランドの積を生成します。/ 演算子は除算を実行し、オペランドの商を生成します。% 演算子は、暗黙の除算によるオペランドの剰余を生成します。+ )加算演算子は、
- )- 演算子は減算を実行し、オペランドの差を生成します。
<< )右オペランドで指定された量だけ、左オペランドに対してビット単位の左シフト操作を実行します。
>> )右オペランドで指定された量だけ、左オペランドに対して符号ビットで埋めるビット単位の右シフト操作を実行します。
>>> )右オペランドで指定された量だけ、左オペランドに対してゼロで埋めるビット単位の右シフト操作を実行します。
関係演算子を評価した結果は常に
[In] 文法パラメーターは、関係式内の in 演算子と for 文内の in 演算子の混同を避けるために必要です。
手順 instanceof 演算子の意味論を定義するために instanceof 意味論を使用します。
等価演算子を評価した結果は常に
等価演算子は、次の不変条件を維持します。
A != B は !(A == B) と等価です。
A == B は、A と B の評価順序を除き、B == A と等価です。
等価演算子は常に推移的であるとは限りません。たとえば、同じ String 値を表す2つの異なる String オブジェクトが存在する場合、それぞれの String オブジェクトは == 演算子によって String 値と等しいとみなされますが、2つの String オブジェクト同士は等しくありません。たとえば:
new String("a") == "a" と "a" == new String("a") はどちらも new String("a") == new String("a") は String の比較では、コード単位値の列に対する単純な等価性テストを使用します。Unicode 仕様で定義される、より複雑で意味論指向の文字または文字列の等価性や照合順序の定義を使用しようとはしません。したがって、Unicode Standard に従って正準的に等しい String 値でも、等しくないと判定される可能性があります。実質的に、このアルゴリズムは両方の String がすでに正規化形式であることを前提としています。
&& または || 演算子によって生成される値は、必ずしも
? : )ECMAScript の
| assignmentOpText | opText |
|---|---|
**= | ** |
*= | * |
/= | / |
%= | % |
+= | + |
-= | - |
<<= | << |
>>= | >> |
>>>= | >>> |
&= | & |
^= | ^ |
|= | | |
この式が
**、*、/、%、+、-、<<、>>、>>>、&、^ または |)) および rightValue (
+ である場合、** である場合、? / である場合、? % である場合、? >>> である場合、? | opText | operation |
|---|---|
* | |
+ | |
- | |
<< | |
>> | |
& | |
^ | |
| | |
| opText | operation |
|---|---|
** | |
* | |
/ | |
% | |
+ | |
- | |
<< | |
>> | |
>>> | |
& | |
^ | |
| | |
手順
手順
**、*、/、%、+、-、<<、>>、>>>、&、^ または |)) および rightOperand (
特定の状況で次の生成規則のインスタンスを処理するとき
分割パターンではない
, )