---
title: 문 및 선언
slug: Web/JavaScript/Reference/Statements
tags:
- JavaScript
- Reference
- statements
translation_of: Web/JavaScript/Reference/Statements
---
{{jsSidebar("Statements")}}
JavaScript 응용 프로그램은 적절한 구문을 갖는 문으로 구성됩니다. 한 문이 여러 줄에 걸칠 수 있습니다. 여러 문은 각 문이 세미콜론으로 구분된 경우 한 줄에 나올 수 있습니다. 이는 키워드 하나가 아니라, 키워드 그룹입니다.
항목별 문 및 선언
알파벳순 목록은 왼쪽 사이드바를 보세요.
흐름 제어
- {{jsxref("Statements/block", "Block")}}
- 블록문은 0개 이상의 문을 묶을 때 쓰입니다. 블록은 중괄호 한 쌍으로 구분됩니다.
- {{jsxref("Statements/break", "break")}}
- 현재 루프,
switch
또는 label
문을 종료하고 프로그램 제어를 종료된 문의 다음 문으로 넘겨줍니다.
- {{jsxref("Statements/continue", "continue")}}
- 현재 또는 레이블 달린 루프의 현재 반복 중인 문의 실행을 종료하고 루프의 실행은 다음 반복으로 이어집니다.
- {{jsxref("Statements/Empty", "empty")}}
- empty 문은 내용이 없는 빈 문을 제공하기 위해 사용됩니다, 비록 JavaScript 구문이 문을 기대할 것이지만.
- {{jsxref("Statements/if...else", "if...else")}}
- 지정된 조건이 true면 문을 실행. 조건이 false인 경우, 다른 문이 실행될 수 있습니다.
- {{jsxref("Statements/switch", "switch")}}
- 식의 값이 case 절과 일치하는지 식을 평가하고 case 절과 관련된 문을 실행합니다.
- {{jsxref("Statements/throw", "throw")}}
- 사용자 정의 예외가 발생합니다.
- {{jsxref("Statements/try...catch", "try...catch")}}
- 시도(try)할 문 블록을 표시하고 예외가 발생되어야 하는 응답을 지정합니다.
선언
- {{jsxref("Statements/var", "var")}}
- 변수를 선언합니다, 변수를 값으로 초기화할 수 있습니다.
- {{jsxref("Statements/let", "let")}}
- 블록 범위 지역 변수를 선언합니다, 변수를 값으로 초기화할 수 있습니다.
- {{jsxref("Statements/const", "const")}}
- 읽기 전용 유명(named) 상수를 선언합니다.
함수 및 클래스
- {{jsxref("Statements/function", "function")}}
- 지정된 매개변수를 갖는 함수를 선언합니다.
- {{jsxref("Statements/function*", "function*")}}
- 반복기를 더 쉽게 작성할 수 있게 하는 생성기 함수.
- {{jsxref("Statements/return", "return")}}
- 함수에 의해 반환되는 값을 지정합니다.
- {{jsxref("Statements/class", "class")}}
- 클래스를 선언합니다.
반복
- {{jsxref("Statements/do...while", "do...while")}}
- 테스트 조건이 거짓으로 평가될 때까지 지정된 문을 실행하는 루프를 만듭니다. 조건은 문을 실행한 후 평가됩니다, 그 결과 지정된 문은 적어도 한 번 실행됩니다.
- {{jsxref("Statements/for", "for")}}
- 괄호로 묶이고 세미콜론으로 구분된 선택사항 식 셋으로 구성된 루프를 만듭니다, 루프에서 실행되는 문이 뒤따릅니다.
- {{jsxref("Statements/for_each...in", "for each...in")}} {{deprecated_inline}} {{non-standard_inline}}
- 객체의 모든 속성값에 대해 지정된 변수를 반복합니다. 각 개별 속성에 대해, 지정된 문이 실행됩니다.
- {{jsxref("Statements/for...in", "for...in")}}
- 임의의 순서로 객체의 열거 속성을 반복합니다. 각 개별 속성에 대해, 문은 실행될 수 있습니다.
- {{jsxref("Statements/for...of", "for...of")}}
- 반복 가능한 객체 ({{jsxref("Global_Objects/Array","배열","","true")}}, 배열 같은 객체, 반복기 및 생성기 포함) 를 반복합니다, 각 개별 속성값에 대해 실행되는 문을 가진 사용자 정의 반복 후크를 호출하는.
- {{jsxref("Statements/while", "while")}}
- 테스트 조건이 true로 평가되는 한 지정된 문을 실행하는 루프를 만듭니다. 조건은 문을 실행하기 전에 평가됩니다.
기타
- {{jsxref("Statements/debugger", "debugger")}}
- 이용 가능한 디버깅 기능을 호출합니다. 이용 가능한 기능이 없는 경우, 이 문은 아무 효과가 없습니다.
- {{jsxref("Statements/export", "export")}}
- 외부 모듈, 다른 스크립트에 가져올(import) 수 있도록 함수를 내보내(export)는데 사용됩니다.
- {{jsxref("Statements/import", "import")}}
- 외부 모듈, 다른 스크립트에서 내보낸 함수를 가져오는데 사용됩니다.
- {{jsxref("Statements/label", "label")}}
break
또는 continue
문을 사용하여 참조할 수 있는 식별자 있는 문을 제공합니다.
- {{jsxref("Statements/with", "with")}} {{deprecated_inline}}
- 문의 스코프 체인을 확장합니다.
명세
명세 |
상태 |
설명 |
{{SpecName('ES1', '#sec-12', 'Statements')}} |
{{Spec2('ES1')}} |
초기 정의 |
{{SpecName('ES3', '#sec-12', 'Statements')}} |
{{Spec2('ES3')}} |
|
{{SpecName('ES5.1', '#sec-12', 'Statements')}} |
{{Spec2('ES5.1')}} |
|
{{SpecName('ES6', '#sec-ecmascript-language-statements-and-declarations', 'ECMAScript Language: Statements and Declarations')}} |
{{Spec2('ES6')}} |
신규: function*, let, for...of, yield, class |
{{SpecName('ESDraft', '#sec-ecmascript-language-statements-and-declarations', 'ECMAScript Language: Statements and Declarations')}} |
{{Spec2('ESDraft')}} |
|
브라우저 호환성
{{Compat("javascript.statements")}}
같이 보기