this
키워드(The this
Keyword)new
연산자(The new
Operator)super
키워드(The super
Keyword)? :
),
)if
문do
-while
문while
문for
문for
-in
, for
-of
, for
-await
-of
문continue
문break
문return
문with
문switch
문throw
문try
문debugger
문?
u
m
/
p
1-9
0
`
ECMAScript source text는 유니코드 코드 포인트들의 시퀀스이다. ECMAScript 문법이 허용하는 위치에서는 U+0000 부터 U+10FFFF 까지의 모든 유니코드 코드 포인트 값(서러게이트 코드 포인트 포함)이 ECMAScript 소스 텍스트에 나타날 수 있다. ECMAScript 소스 텍스트를 저장·교환하는 실제 인코딩은 이 명세와 무관하다. 외부 소스 텍스트 인코딩이 무엇이든, 적합한 ECMAScript 구현은 소스 텍스트를 동등한
결합 문자 시퀀스(combining character sequence)의 구성 요소들은 사용자가 전체를 단일 문자로 생각할지라도 개별 유니코드 코드 포인트로 취급된다.
문자열 리터럴, 정규 표현식 리터럴, 템플릿 리터럴 및 식별자에서 모든 유니코드 코드 포인트는 해당 코드 포인트의 수치 값을 명시적으로 표현하는 유니코드 이스케이프 시퀀스로도 표현할 수 있다. 주석 안에서는 그러한 이스케이프 시퀀스는 주석 일부로서 사실상 무시된다.
ECMAScript 는 유니코드 이스케이프 시퀀스 동작에서 Java 프로그래밍 언어와 다르다. 예를 들어 Java 프로그램에서 유니코드 이스케이프 시퀀스 \u000A
가 단일 행 주석 내에 나타나면 그것은 행 종결자(유니코드 코드 포인트 U+000A 는 LINE FEED (LF))로 해석되어 다음 코드 포인트는 더 이상 주석의 일부가 아니다. 마찬가지로 Java 프로그램의 문자열 리터럴에 \u000A
가 나타나면 그것 역시 행 종결자로 해석되며 문자열 리터럴 내부에는 허용되지 않는다—문자열 값에 LINE FEED (LF)를 포함하려면 \u000A
대신 \n
을 써야 한다. ECMAScript 프로그램에서는 주석 내부에 나타나는 유니코드 이스케이프 시퀀스가 절대 해석되지 않으며 따라서 주석 종료에 기여할 수 없다. 유사하게 ECMAScript 프로그램의 문자열 리터럴 내부에 나타나는 유니코드 이스케이프 시퀀스는 항상 리터럴의 일부로 기여하고 결코 행 종결자나 문자열 리터럴을 종료시킬 수 있는 코드 포인트로 해석되지 않는다.
The abstract operation UNKNOWN takes UNPARSEABLE ARGUMENTS. It performs the following steps when called:
The abstract operation UNKNOWN takes UNPARSEABLE ARGUMENTS. 이는
The abstract operation UNKNOWN takes UNPARSEABLE ARGUMENTS. UTF-16 서로게이트 쌍을 이루는 두 코드 유닛을 코드 포인트로 변환한다. It performs the following steps when called:
The abstract operation UNKNOWN takes UNPARSEABLE ARGUMENTS.
The abstract operation UNKNOWN takes UNPARSEABLE ARGUMENTS.
The abstract operation UNKNOWN takes UNPARSEABLE ARGUMENTS. It performs the following steps when called:
특정 지점에 조기 오류가 있고 이후 지점에 구문 오류가 있는 텍스트를 생각해보자. 파싱 후 조기 오류 패스를 수행하는 구현은 구문 오류를 보고하고 조기 오류 패스로 진행하지 않을 수 있다. 두 활동을 교차 수행하는 구현은 조기 오류를 보고하고 구문 오류 탐지를 진행하지 않을 수 있다. 세 번째 구현은 두 오류를 모두 보고할 수 있다. 이 모든 동작은 적합하다.
ECMAScript 코드는 네 가지 유형이 있다:
eval
함수에 제공되는 소스 텍스트이다. 더 정확히 말해 내장 eval
함수의 매개변수가 String 이면 ECMAScript eval
호출에 대한 eval code 는 그 Function code 는 ECMAScript
추가로, 위에서 언급한 소스 텍스트가 다음으로 파싱되는 경우:
그 선언 또는 표현식의
Function code 는 일반적으로 Function Definitions (
function code 에
Directive Prologue 는
Use Strict Directive 는 "use strict"
또는 'use strict'
코드 포인트 시퀀스인
ECMAScript 구문 단위는 비제한(unrestricted) 또는 strict 모드 문법과 의미론(
eval
이 strict mode code 에 포함된 direct eval 이면 strict mode code 이다.
strict mode code 가 아닌 ECMAScript 코드는 non-strict code 라고 한다.
The abstract operation UNKNOWN takes UNPARSEABLE ARGUMENTS. It performs the following steps when called:
ECMAScript 구현은 평가 동작이 ECMAScript 소스 텍스트가 아닌