?uem/p1-90`yield와 await는 다음과 같은 경우 자동 세미콜론 삽입을 금지하기 위해 문법에서는
let
await 0;
yield 또는 await를 제외한 yield를 식별자로 사용할 수 있습니다. yield가
다음 생성 규칙의 인스턴스를 처리할 때
this 키워드false이면 true이면 Array 요소는 요소 목록의 시작, 중간 또는 끝에서 생략될 수 있습니다. 요소 목록에서 쉼표 앞에
표준 내장
객체 이니셜라이저는 리터럴과 유사한 형식으로 작성되어 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 연산자+ 연산자단항 + 연산자는 피연산자를
- 연산자단항 - 연산자는 피연산자를 숫자 값으로 변환한 다음 부호를 반전합니다.
~ )! )* 연산자는 곱셈을 수행하여 피연산자의 곱을 생성합니다./ 연산자는 나눗셈을 수행하여 피연산자의 몫을 생성합니다.% 연산자는 암묵적인 나눗셈에서 피연산자의 나머지를 생성합니다.+ )덧셈 연산자는
- )- 연산자는 뺄셈을 수행하여 피연산자의 차를 생성합니다.
<< )왼쪽 피연산자에 대해 오른쪽 피연산자가 지정한 양만큼 비트 단위 왼쪽 시프트 연산을 수행합니다.
<<, >> )왼쪽 피연산자에 대해 오른쪽 피연산자가 지정한 양만큼 부호를 채우는 비트 단위 오른쪽 시프트 연산을 수행합니다.
>>, >>> )왼쪽 피연산자에 대해 오른쪽 피연산자가 지정한 양만큼 0을 채우는 비트 단위 오른쪽 시프트 연산을 수행합니다.
>>>, 관계 연산자를 평가한 결과는 항상
[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 비교는 코드 단위 값 시퀀스에 대한 단순 동등성 검사를 사용합니다. 유니코드 명세에 정의된 문자 또는 문자열 동등성과
&& 또는 || 연산자가 생성하는 값은 반드시
? : )ECMAScript의
| assignmentOpText | opText |
|---|---|
**= | ** |
*= | * |
/= | / |
%= | % |
+= | + |
-= | - |
<<= | << |
>>= | >> |
>>>= | >>> |
&= | & |
^= | ^ |
|= | | |
이 표현식이
**, *, /, %, +, -, <<, >>, >>>, &, ^ 또는 |)) 및 rightValue (
+이면, 다음을 수행합니다.**이면 ? /이면 ? %이면 ? >>>이면 ? | opText | operation |
|---|---|
* | |
+ | |
- | |
<< | |
>> | |
& | |
^ | |
| | |
| opText | operation |
|---|---|
** | |
* | |
/ | |
% | |
+ | |
- | |
<< | |
>> | |
>>> | |
& | |
^ | |
| | |
**, *, /, %, +, -, <<, >>, >>>, &, ^ 또는 |)) 및 rightOperand (구문 분석 노드). 반환값: (
특정 상황에서 다음 생성 규칙의 인스턴스를 처리할 때
구조 분해 패턴이 아닌
, )값을 사용하지 않더라도 관찰 가능한 부작용이 있을 수 있으므로