JavaScript
==========

**JavaScript** (**JS**)는 가벼운, 인터프리터 혹은 just-in-time 컴파일 프로그래밍 언어로, 일급 함수를 지원합니다. 웹 페이지를 위한 스크립트 언어로 잘 알려져 있지만, Node.js, Apache CouchDB, Adobe Acrobat처럼 많은 비 브라우저 환경에서도 사용하고 있습니다. JavaScript는 프로토타입 기반, 다중 패러다임, 단일 스레드, 동적 언어로, 객체지향형, 명령형, 선언형(함수형 프로그래밍 등) 스타일을 지원합니다.

JavaScript의 동적 기능에는 런타임 객체 구성, 변수 매개변수 목록, 함수 변수, (`eval`을 통한) 동적 스크립트 생성, (`for...in` 및 `Object` 유틸리티를 통한) 객체 검사 그리고 소스 코드 복구(JavaScript 함수는 소스 텍스트를 저장하고 `toString()`을 통해 다시 찾을 수 있습니다.)가 있습니다.

이 섹션은 JavaScript 언어 자체를 다루며 웹 페이지 또는 다른 사용 환경에 대해 다루지 않습니다. 웹 페이지의 특정 API에 대한 정보를 알고 싶다면, 웹 API와 DOM을 참고하시기 바랍니다.

JavaScript의 표준은 ECMAScript 언어 사양 (ECMA-262)과 ECMAScript 국제화 API 사양 (ECMA-402)입니다. 저희는 한 브라우저가 어떤 기능을 구현하는 즉시 이를 문서화하려고 노력하고 있습니다. 이는 새로운 ECMAScript 기능에 대한 일부 제안이 브라우저에서 구현된 경우, MDN의 문서와 예제가 이 새로운 기능 중 일부를 사용할 수 있음을 의미합니다. 대부분 3, 4단계 사이에서 이루어지며, 이것은 일반적으로 사양이 공식적으로 게시되기 전입니다.

JavaScript와 Java 프로그래밍 언어를 혼동해서는 안 됩니다. **JavaScript는 "인터프리트 Java"가 아닙니다.** "Java"와 "JavaScript" 는 모두 상표이자 미국 및 기타 국가에 등록된 Oracle의 상표이지만, 두 프로그래밍 언어의 구문, 의미 및 사용 방법은 매우 다릅니다.

핵심 언어 기능(대부분 순수한 ECMAScript)에 대한 JavaScript 문서는 다음과 같습니다.

* JavaScript 안내서
* JavaScript 참고서

JavaScript 사양과 관련 기술에 대한 자세한 내용은 JavaScript 기술 개요를 참조하세요.

**프론트 엔드 웹 개발자가 되고 싶으신가요?**

목표 달성에 필요한 모든 필수 정보가 포함된 과정을 마련했습니다.

**시작하기**

자습서
---

가이드 및 자습서를 통해 JavaScript로 프로그래밍하는 방법을 배워보세요.

### 입문자용

JavaScript를 배우고 싶지만 JavaScript이나 프로그래밍에 대한 이전 경험이 없는 경우 JavaScript 주제에 대한 학습 영역을 방문하세요. 전체 과정은 다음과 같습니다.

JavaScript 첫 걸음

변수, 문자열, 숫자 및 배열과 같은 주요 JavaScript 기능에 대해 논의하면서 "JavaScript 는 무엇인가요?", "어떤 모습인가요?", "무엇을 할 수 있나요?"와 같은 몇 가지 기본적인 질문에 답합니다.

JavaScript 구성 요소

JavaScript의 핵심 기본 기능에 대한 이해를 넓히기 위해 조건문, 반복문, 함수, 이벤트와 같이 흔히 찾을 수 코드 블록의 형태에 대해서 알아봅니다.

JavaScript 객체 소개

JavaScript의 객체 지향적 특성에 대한 이해는 언어의 이해도를 높이며 효율적인 코드를 작성하려는 경우 중요하므로, 이 과정이 도움이 될 것입니다.

비동기 JavaScript

비동기 JavaScript가 중요한 이유와, 비동기적 코드를 사용해 서버에서 리소스 가져오기 등 블록킹 연산을 효율적으로 처리하는 방법에 대해 알아봅니다.

클라이언트측 웹 API

API란 무엇인지 탐색해보고, 개발 작업에서 자주 접하게 될 가장 일반적인 API를 사용하는 방법을 알아봅니다.

### JavaScript 안내서

JavaScript 안내서

JavaScript 또는 다른 언어로 프로그래밍 경험이 있는 독자들을 대상으로한 JavaScript 언어에 대한 상세 가이드입니다.

### 중급

클라이언트 측 JavaScript 프레임워크 이해

JavaScript 프레임워크는 현대 프런트 엔드 웹 개발의 필수 부분으로, 개발자에게 확장 가능한 상호작용형 웹 응용 프로그램을 구축하기위한 입증된 도구를 제공합니다. 이 과정에서는 오늘날 가장 인기있는 일부 프레임워크를 다루는 자습서 시리즈로 이동하기 전에 클라이언트 측 프레임워크가 작동하는 방식과 도구 집합에 맞는 방식에 대한 기본적인 배경 지식을 제공합니다.

JavaScript 개요

다른 프로그래밍 언어에서 넘어 온 사람들이 빨리 배울 수 있는 JavaScript의 기본 구문과 의미 체계에 대한 개요입니다.

JavaScript 데이터 구조

JavaScript에서 이용 가능한 데이터 구조 개요입니다.

동등성 비교 및 동일성

JavaScript는 `===`를 사용한 완전 동등, `==`를 사용한 느슨한 동등, 그리고 `Object.is()` 메서드의 세 가지 값 비교 연산을 제공합니다.

속성의 열거 가능성과 소유권 (en-US)

객체 속성 그룹을 하나씩 방문하는 다양한 방법이 속성의 열거 가능성과 소유권을 처리하는 방법입니다.

클로저

클로저는 함수와 그 함수가 선언된 어휘 (lexical) 환경의 조합입니다.

### 고급

상속 및 프로토타입 체인

널리 오해 받고 과소 평가된 프로토타입 기반 상속을 설명합니다.

JavaScript 형식화 배열

JavaScript 형식화된 배열은 원시 이진 데이터에 접근하기 위한 메커니즘을 제공합니다.

메모리 관리

JavaScript의 메모리 생명 주기와 가비지 컬렉션을 설명합니다.

동시성 모델 및 이벤트 루프

JavaScript는 "이벤트 루프"에 기반을 둔 동시성 모델이 있습니다.

참고서
---

전체 JavaScript 참고서를 훑어보세요.

표준 객체

`Array`, `Boolean`, `Date`, `Error`, `Function`, `JSON`, `Math`, `Number`, `Object`, `RegExp`, `String`, `Map`, `Set` (en-US), `WeakMap`, `WeakSet` 등 표준 내장 객체를 배웁니다.

표현식 및 연산자

JavaScript 연산자 `instanceof`, `typeof`, `new`, `this`의 동작, 연산자 우선순위 등을 배웁니다.

명령문 및 선언문

`do-while`, `for-in`, `for-of`, `try-catch` (en-US), `let`, `var`, `const`, `if-else`, `switch` (en-US) 등의 JavaScript의 구문 및 키워드 작동법을 배웁니다.

함수

애플리케이션을을 개발하기 위해 JavaScript의 함수를 사용하는 방법을 배웁니다.

클래스

JavaScript 클래스는 객체 지향 프로그래밍을 수행하는 가장 적절한 방법입니다.