# 02 ECMAScript

- [2.0 ECMAScript](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/intro.md): 타입스크립트의 기반이 되는 언어 ECMAScript 최신 명세에 추가된 여러 유용한 기능들을 살펴본다.
- [2.1 블록 수준 스코프](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/block-level-scope.md)
- [2.1.1 let을 이용한 선언](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/block-level-scope/declaration-using-let.md): let을 이용해 재할당이 가능한 블록 레벨 변수를 선언할 수 있다.
- [2.2.2 const를 이용한 선언](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/block-level-scope/declaration-using-const.md): const를 이용해 재할당이 불가능한 블록 레벨 변수를 선언할 수 있다.
- [2.2.3 스코프 베스트 프랙티스](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/block-level-scope/scope-best-practice.md)
- [2.2 객체와 배열](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/object-and-array.md)
- [2.2.1 비구조화 할당](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/object-and-array/destructuring-assignment.md): 비구조화 할당 문법을 이용해 이전까지 여러 라인에 걸쳐 적어야만 했던 할당을 보다 간결하게 쓸 수 있다.
- [2.2.2 나머지 연산자와 전개 연산자](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/object-and-array/rest-and-spread-operator.md)
- [2.2.3 객체 리터럴 변경사항](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/object-and-array/object-literal-diff.md): 최신 ECMAScript에서의 객체 리터럴 변경사항에 대해 다룬다.
- [2.3 함수](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/function.md): 최신 ECMAScript 명세에서 자바스크립트 함수에 어떤 변경점이 있었는지 알아본다.
- [2.3.1 기본 매개변수](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/function/default-parameter.md): ES6 기본 매개변수 문법을 사용해 매개변수의 기본값을 간결하게 표현할 수 있다.
- [2.3.2 화살표 함수](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/function/arrow-functions.md): 화살표 함수는 자바스크립트 함수 내부에서 this가 야기하는 혼란을 줄여준다.
- [2.4 템플릿 리터럴](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/template-literal.md)
- [2.4.1 멀티라인 문자열](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/template-literal/multiline-string.md): 템플릿 리터럴을 이용해 여러 줄에 걸친 문자열을 손쉽게 표현할 수 있다.
- [2.4.2 문자열 치환](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/template-literal/string-substitution.md): 템플릿 리터럴은 문자열의 일부를 특정 값으로 치환할 수 있는 수단을 제공한다.
- [2.5 원소 순회](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/element-enumeration.md): 최신 ECMAScript 명세에 추가된 원소 순회 수단에 대해 알아본다.
- [2.5.1 forEach 메소드](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/element-enumeration/foreach.md)
- [2.5.2 for-of 문법](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/element-enumeration/for-of.md)
- [2.5.3 이터레이터 프로토콜](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/element-enumeration/iterator-protocol.md)
- [2.5.4 이터러블 프로토콜](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/element-enumeration/iterable-protocol.md)
- [2.6 비동기 처리](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/handling-asynchronous.md)
- [2.6.1 프로미스](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/handling-asynchronous/promises.md)
- [2.6.2 Async / Await](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/handling-asynchronous/async-await.md)
- [2.7 맺으며](https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript/outro.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ahnheejong.gitbook.io/ts-for-jsdev/02-ecmascript.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
