?um/p1-90`yield와 await는 grammar에서
let
await 0;
yield 또는 await를 제외한 임의의 The
yield는 identifier로 사용될 수 있습니다. yield의 binding을 resolve합니다. Early Error restriction은 그러한 evaluation이
production
의 instance를 processing할 때,
this Keywordfalse이면, true이면, Array element는 element list의 beginning, middle 또는 end에서 elided될 수 있습니다. element list 안의 comma가
The
object initializer는 literal과 resembling한 form으로 written된, Object의 initialization을 describe하는 expression입니다. 이는 curly bracket으로 enclosed된, 0개 이상의
certain context에서
actual object initializer를 describing하는 것 외에도
이 production은
The
The
The
The
The abstract operation IsValidRegularExpressionLiteral takes argument literal (a
d, g, i, m, s, u, v, 또는 y 이외의 code point를 contain하면, u를 contain하면, u를 v를 contain하면, v를 The
The abstract operation TemplateString takes arguments templateToken (a
이 operation은 raw가
The abstract operation GetTemplateObject takes argument templateLiteral (a
template object의 creation은
이 명세의 future edition은 template object의 additional non-enumerable property를 define할 수 있습니다.
The
+ operator가 아니라 String.prototype.concat과 같습니다.
+ operator가 아니라 String.prototype.concat과 같습니다.
+ operator가 아니라 String.prototype.concat과 같습니다.
이 algorithm은 delete 및 typeof 같은 operator가 parenthesized expression에 applied될 수 있도록 하기 위한 것입니다.
production
의 instance를 processing할 때,
이 production은 다음 code에 automatic semicolon insertion rule(
a?.b
`c`
따라서 이것이 두 개의 valid statement로 interpreted되지 않도록 합니다. 그 purpose는 optional chaining이 없는 similar code와 consistency를 maintain하는 것입니다:
a.b
`c`
이는 valid statement이며 automatic semicolon insertion이 apply되지 않습니다.
Property는 dot notation을 사용하여 name으로 accessed됩니다:
또는 bracket notation을 사용합니다:
dot notation은 다음 syntactic conversion에 의해 explained됩니다:
는 그 behaviour가 다음과 identical합니다
그리고 similarly
는 그 behaviour가 다음과 identical합니다
여기서 <identifier-name-string>은
The abstract operation EvaluatePropertyAccessWithExpressionKey takes arguments baseValue (an
a[b] = c의 경우에는 c의 evaluation 이후까지 performed되지 않습니다.The abstract operation EvaluatePropertyAccessWithIdentifierKey takes arguments baseValue (an
new OperatorThe abstract operation EvaluateNew takes arguments constructExpr (a
step
The abstract operation EvaluateCall takes arguments func (an
super Keywordsuper[b] = c의 경우에는 c의 evaluation 이후까지 performed되지 않습니다.The abstract operation GetSuperConstructor takes no arguments and returns an Object or
The abstract operation MakeSuperPropertyReference takes arguments actualThis (an
argument list의 evaluation은 value의
The
?.로 시작합니다.The
The abstract operation EvaluateImportCall takes argument specifierExpr (a
The abstract operation ContinueDynamicImport takes arguments promiseCapability (a import()
tagged template은 call의 argument가
The import.meta에서 반환된 object를 위한
HostGetImportMetaProperties의 default implementation은 새 empty
The import.meta에서 반환된 object를 prepare하기 위해 extraordinary operation을 perform할 수 있게 합니다.
대부분의
HostFinalizeImportMeta의 default implementation은
생성식의 인스턴스를 처리할 때
delete Operator
derived
이고
last rule은 delete (((foo))) 같은 expression이 first rule의 recursive application 때문에
delete operator가 delete operator가
step
void Operatorvalue가 사용되지 않더라도 observable side-effect가 있을 수 있으므로
typeof Operator+ Operatorunary + operator는 그 operand를
- Operatorunary - operator는 그 operand를 numeric value로 convert한 다음 negate합니다.
~ )! )* operator는 multiplication을 수행하여 operand의 product를 produce합니다./ operator는 division을 수행하여 operand의 quotient를 produce합니다.% operator는 implied division에서 operand의 remainder를 yield합니다.+ )addition operator는 string concatenation 또는 numeric addition을 수행합니다.
- )- operator는 subtraction을 수행하여 operand의 difference를 produce합니다.
<< )left operand에 대해 right operand가 specified하는 amount만큼 bitwise left shift operation을 수행합니다.
>> )left operand에 대해 right operand가 specified하는 amount만큼 sign-filling bitwise right shift operation을 수행합니다.
>>> )left operand에 대해 right operand가 specified하는 amount만큼 zero-filling bitwise right shift operation을 수행합니다.
>>>, relational operator를 evaluating한 result는 항상
[In] grammar parameter는 relational expression 안의 in operator와 for statement 안의 in operator를 confuse하는 것을 avoid하기 위해 필요합니다.
The abstract operation InstanceofOperator takes arguments value (an
step instanceof operator semantics를 define하기 위해 instanceof semantics를 사용합니다.
equality operator를 evaluating한 result는 항상
equality operator는 다음 invariant를 maintain합니다:
A != B는 !(A == B)와 equivalent합니다.
A == B는 A와 B의 evaluation order를 제외하면 B == A와 equivalent합니다.
equality operator는 항상 transitive하지는 않습니다. 예를 들어 같은 String value를 각각 representing하는 두 distinct String object가 있을 수 있습니다; 각 String object는 == operator에 의해 String value와 equal하다고 considered되지만, 두 String object는 서로 equal하지 않습니다. 예:
new String("a") == "a"와 "a" == new String("a")는 모두 new String("a") == new String("a")는 String의 comparison은 code unit value의 sequence에 대한 simple equality test를 사용합니다. Unicode specification에 defined된 character 또는 string equality 및 collating order의 더 complex하고 semantically oriented한 definition을 사용하려는 attempt는 없습니다. 따라서 Unicode Standard에 따라 canonically equal한 String value가 unequal로 test될 수 있습니다. 사실상 이 algorithm은 두 String이 이미 normalized form에 있다고 assume합니다.
&& 또는 || operator가 produced하는 value는 반드시
? : )ECMAScript에서
| assignmentOpText | opText |
|---|---|
**= | ** |
*= | * |
/= | / |
%= | % |
+= | + |
-= | - |
<<= | << |
>>= | >> |
>>>= | >>> |
&= | & |
^= | ^ |
|= | | |
이 expression이
The abstract operation ApplyStringOrNumericBinaryOperator takes arguments leftValue (an **, *, /, %, +, -, <<, >>, >>>, &, ^, or |), and rightValue (an
+이면, 다음을 수행한다.**이면, ? /이면, ? %이면, ? >>>이면, ? | opText | operation |
|---|---|
* | |
+ | |
- | |
<< | |
>> | |
& | |
^ | |
| | |
| opText | operation |
|---|---|
** | |
* | |
/ | |
% | |
+ | |
- | |
<< | |
>> | |
>>> | |
& | |
^ | |
| | |
step
step
The abstract operation EvaluateStringOrNumericBinaryExpression takes arguments leftOperand (a **, *, /, %, +, -, <<, >>, >>>, &, ^, or |), and rightOperand (a
특정 circumstance에서 production
의 instance를 processing할 때,
The
The
The
The
destructuring pattern이 아닌
The
, )value가 사용되지 않더라도 observable side-effect가 있을 수 있으므로