문 및 선언
======

JavaScript 응용 프로그램은 적절한 구문을 갖는 문으로 구성됩니다. 한 문이 여러 줄에 걸칠 수 있습니다. 여러 문은 각 문이 세미콜론으로 구분된 경우 한 줄에 나올 수 있습니다. 이는 키워드 하나가 아니라, 키워드 그룹입니다.

항목별 문 및 선언
----------

알파벳순 목록은 왼쪽 사이드바를 보세요.

### 흐름 제어

`Block`

블록문은 0개 이상의 문을 묶을 때 쓰입니다. 블록은 중괄호 한 쌍으로 구분됩니다.

`break`

현재 루프, `switch` 또는 `label` 문을 종료하고 프로그램 제어를 종료된 문의 다음 문으로 넘겨줍니다.

`continue`

현재 또는 레이블 달린 루프의 현재 반복 중인 문의 실행을 종료하고 루프의 실행은 다음 반복으로 이어집니다.

`empty`

empty 문은 내용이 없는 빈 문을 제공하기 위해 사용됩니다, 비록 JavaScript 구문이 문을 기대할 것이지만.

`if...else`

지정된 조건이 true면 문을 실행. 조건이 false인 경우, 다른 문이 실행될 수 있습니다.

`switch` (en-US)

식의 값이 case 절과 일치하는지 식을 평가하고 case 절과 관련된 문을 실행합니다.

`throw`

사용자 정의 예외가 발생합니다.

`try...catch` (en-US)

시도(try)할 문 블록을 표시하고 예외가 발생되어야 하는 응답을 지정합니다.

### 선언

`var`

변수를 선언합니다, 변수를 값으로 초기화할 수 있습니다.

`let`

블록 범위 지역 변수를 선언합니다, 변수를 값으로 초기화할 수 있습니다.

`const`

읽기 전용 유명(named) 상수를 선언합니다.

### 함수 및 클래스

`function`

지정된 매개변수를 갖는 함수를 선언합니다.

`function*`

반복기 (en-US)를 더 쉽게 작성할 수 있게 하는 생성기 함수.

`return`

함수에 의해 반환되는 값을 지정합니다.

`class`

클래스를 선언합니다.

### 반복

`do...while`

테스트 조건이 거짓으로 평가될 때까지 지정된 문을 실행하는 루프를 만듭니다. 조건은 문을 실행한 후 평가됩니다, 그 결과 지정된 문은 적어도 한 번 실행됩니다.

`for`

괄호로 묶이고 세미콜론으로 구분된 선택사항 식 셋으로 구성된 루프를 만듭니다, 루프에서 실행되는 문이 뒤따릅니다.

`for each...in` 
지원이 중단되었습니다

비표준

객체의 모든 속성값에 대해 지정된 변수를 반복합니다. 각 개별 속성에 대해, 지정된 문이 실행됩니다.

`for...in`

임의의 순서로 객체의 열거 속성을 반복합니다. 각 개별 속성에 대해, 문은 실행될 수 있습니다.

`for...of`

반복 가능한 객체 (배열, 배열 같은 객체, 반복기 및 생성기 포함) 를 반복합니다, 각 개별 속성값에 대해 실행되는 문을 가진 사용자 정의 반복 후크를 호출하는.

`while`

테스트 조건이 true로 평가되는 한 지정된 문을 실행하는 루프를 만듭니다. 조건은 문을 실행하기 전에 평가됩니다.

### 기타

`debugger`

이용 가능한 디버깅 기능을 호출합니다. 이용 가능한 기능이 없는 경우, 이 문은 아무 효과가 없습니다.

`export`

외부 모듈, 다른 스크립트에 가져올(import) 수 있도록 함수를 내보내(export)는데 사용됩니다.

`import`

외부 모듈, 다른 스크립트에서 내보낸 함수를 가져오는데 사용됩니다.

`label`

`break` 또는 `continue` 문을 사용하여 참조할 수 있는 식별자 있는 문을 제공합니다.

`with` (en-US) 
지원이 중단되었습니다

문의 스코프 체인을 확장합니다.

명세서
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-async-function-definitions |
| ECMAScript Language Specification # sec-async-generator-function-definitions |
| ECMAScript Language Specification # sec-block |
| ECMAScript Language Specification # sec-break-statement |
| ECMAScript Language Specification # sec-class-definitions |
| ECMAScript Language Specification # sec-let-and-const-declarations |
| ECMAScript Language Specification # sec-continue-statement |
| ECMAScript Language Specification # sec-debugger-statement |
| ECMAScript Language Specification # sec-do-while-statement |
| ECMAScript Language Specification # sec-empty-statement |
| ECMAScript Language Specification # sec-exports |
| ECMAScript Language Specification # sec-for-statement |
| ECMAScript Language Specification # sec-for-in-and-for-of-statements |
| ECMAScript Language Specification # sec-function-definitions |
| ECMAScript Language Specification # sec-generator-function-definitions |
| ECMAScript Language Specification # sec-if-statement |
| ECMAScript Language Specification # sec-imports |
| ECMAScript Language Specification # sec-labelled-statements |
| ECMAScript Language Specification # sec-return-statement |
| ECMAScript Language Specification # sec-switch-statement |
| ECMAScript Language Specification # sec-throw-statement |
| ECMAScript Language Specification # sec-try-statement |
| ECMAScript Language Specification # sec-variable-statement |
| ECMAScript Language Specification # sec-while-statement |
| ECMAScript Language Specification # sec-with-statement |

브라우저 호환성
--------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

같이 보기
-----

* 연산자