?um/p1-90`yieldおよびawaitはgrammar内で
let
await 0;
yieldまたはawaitを除く任意のThe
yieldをidentifierとして使用できます。yieldが
production
のinstanceを処理するとき、
this Keywordfalseなら、trueなら、Array elementsはelement listのbeginning、middle、またはendでelideされる場合があります。element list内のcommaの直前に
The
object initializerは、literalに似た形式で書かれた、Objectのinitializationを記述するexpressionです。これは、curly bracketsで囲まれた、0個以上の
特定のcontextsでは、
実際のobject initializerを記述することに加えて、
このproductionは、
The
The
The
The
The abstract operation IsValidRegularExpressionLiteral takes argument literal (a
d、g、i、m、s、u、v、またはy以外のcode pointsを含むなら、uを含むなら、uをvを含むなら、vをThe
The abstract operation TemplateString takes arguments templateToken (a
このoperationは、rawが
The abstract operation GetTemplateObject takes argument templateLiteral (a
template objectの作成は
この仕様の将来のeditionsでは、template objectsの追加non-enumerable propertiesを定義する場合があります。
The
+ operatorではなくString.prototype.concatに似ています。
+ operatorではなくString.prototype.concatに似ています。
+ operatorではなくString.prototype.concatに似ています。
このalgorithmはdeleteやtypeofなどのoperatorsをparenthesized expressionsに適用できるようにするためです。
production
のinstanceを処理するとき、
このproductionは、automatic semicolon insertion rules(
a?.b
`c`
これにより、それが2つのvalid statementsとして解釈されることを防ぎます。目的は、optional chainingを使用しない類似のcodeとの一貫性を維持することです:
a.b
`c`
これはvalid statementであり、automatic semicolon insertionは適用されません。
Propertiesは、dot notationを使用してnameによってaccessされます:
またはbracket notationを使用します:
dot notationは、次のsyntactic conversionによって説明されます:
は、その振る舞いにおいて次と同一です
同様に
は、その振る舞いにおいて次と同一です
ここで、<identifier-name-string>は
The abstract operation EvaluatePropertyAccessWithExpressionKey takes arguments baseValue (an ECMAScript language value), expr (an
a[b] = cの場合には、cの評価後まで実行されない。The abstract operation EvaluatePropertyAccessWithIdentifierKey takes arguments baseValue (an ECMAScript language value), identifierName (an
new OperatorThe abstract operation EvaluateNew takes arguments constructExpr (a
step
The abstract operation EvaluateCall takes arguments func (an ECMAScript language value), thisValueRef (an ECMAScript language value or a
super Keywordsuper[b] = cの場合には、cの評価後まで実行されない。The abstract operation GetSuperConstructor takes no arguments and returns an Object or
The abstract operation MakeSuperPropertyReference takes arguments actualThis (an ECMAScript language value), propertyKey (an ECMAScript language value), and strict (a Boolean) and returns a
argument listのevaluationはvaluesの
The
?.で始まります。The
The abstract operation EvaluateImportCall takes argument specifierExpr (a
The abstract operation ContinueDynamicImport takes arguments promiseCapability (a import()
tagged templateは、そのcallのargumentsが
The import.metaから返されるobjectに
HostGetImportMetaPropertiesのdefault implementationは、新しい空の
The import.metaから返されるobjectを準備するために任意のextraordinary operationsを実行できるようにします。
ほとんどの
HostFinalizeImportMetaのdefault implementationは、
生成規則のインスタンスを処理する際
delete Operator
derived
であり、かつ
最後のruleは、delete (((foo)))のようなexpressionsが、最初のruleのrecursive applicationにより
delete operatorがdelete operatorが
step
void Operatorその値は使用されませんが、observable side-effectsを持つ場合があるため、
typeof Operator+ Operatorunary + operatorは、そのoperandをNumber typeへ変換します。
- Operatorunary - operatorは、そのoperandをnumeric valueへ変換し、その後それをnegateします。
~ )! )* operatorはmultiplicationを実行し、そのoperandsのproductを生成します。/ operatorはdivisionを実行し、そのoperandsのquotientを生成します。% operatorは、暗黙のdivisionからそのoperandsのremainderを生成します。+ )addition operatorは、string concatenationまたはnumeric additionのいずれかを実行します。
- )- operatorはsubtractionを実行し、そのoperandsのdifferenceを生成します。
<< )right operandによって指定された量だけ、left operandに対してbitwise left shift operationを実行します。
>> )right operandによって指定された量だけ、left operandに対してsign-filling bitwise right shift operationを実行します。
>>> )right operandによって指定された量だけ、left operandに対してzero-filling bitwise right shift operationを実行します。
relational operatorを評価した結果は常に
[In] grammar parameterは、relational expression内のin operatorとfor statement内のin operatorを混同することを避けるために必要です。
The abstract operation InstanceofOperator takes arguments value (an ECMAScript language value) and target (an ECMAScript language value) and returns either a
Steps instanceof operator semanticsを定義するためにinstanceof semanticsを使用します。
equality operatorを評価した結果は常に
equality operatorsは次のinvariantsを維持します:
A != Bは!(A == B)と等価です。
A == Bは、AおよびBのevaluation順序を除き、B == Aと等価です。
equality operatorは常にtransitiveであるとは限りません。例えば、同じString値を表す2つのdistinct String objectsが存在する場合があります;各String objectは== operatorによってString値と等しいとみなされますが、2つのString objectsは互いに等しいとはみなされません。例えば:
new String("a") == "a"および"a" == new String("a")はいずれもnew String("a") == new String("a")はStringsのcomparisonは、code unit valuesのsequencesに対する単純なequality testを使用します。Unicode specificationで定義される、より複雑でsemantically orientedなcharacterまたはstring equalityおよびcollating orderのdefinitionsを使用する試みはありません。したがって、Unicode Standardに従ってcanonically equalであるStrings valuesが、unequalとしてtestされる可能性があります。実際には、このalgorithmは両方のStringsがすでにnormalized formにあると仮定します。
&&または|| operatorによって生成される値は、必ずしも
? : )ECMAScriptにおける
| assignmentOpText | opText |
|---|---|
**= | ** |
*= | * |
/= | / |
%= | % |
+= | + |
-= | - |
<<= | << |
>>= | >> |
>>>= | >>> |
&= | & |
^= | ^ |
|= | | |
このexpressionが
The abstract operation ApplyStringOrNumericBinaryOperator takes arguments leftValue (an ECMAScript language value), opText (**, *, /, %, +, -, <<, >>, >>>, &, ^, or |), and rightValue (an ECMAScript language value) and returns either a
+なら、**なら、? /なら、? %なら、? >>>なら、? | opText | operation |
|---|---|
* | |
+ | |
- | |
<< | |
>> | |
& | |
^ | |
| | |
| opText | operation |
|---|---|
** | |
* | |
/ | |
% | |
+ | |
- | |
<< | |
>> | |
>>> | |
& | |
^ | |
| | |
steps
Step
The abstract operation EvaluateStringOrNumericBinaryExpression takes arguments leftOperand (a **, *, /, %, +, -, <<, >>, >>>, &, ^, or |), and rightOperand (a
特定の状況で、production
のinstanceを処理するとき、
The
The
The
The
left to right evaluation orderは、
The
, )その値は使用されませんが、observable side-effectsを持つ場合があるため、