JavaScript

JavaScript(JS)는 가벼운 인터프리터 또는 JIT 컴파일 프로그래밍 언어로, 일급 함수를 지원합니다. 웹 페이지의 스크립트 언어로서 제일 유명하지만 Node.js, Apache CouchDB, Adobe Acrobat처럼 많은 비 브라우저 환경에서도 사용하고 있습니다. JavaScript는 프로토타입 기반의 동적 다중 패러다임 스크립트 언어로, 객체지향형, 명령형, 선언형(함수형 프로그래밍 등) 스타일을 지원합니다. 자세한 내용은 JavaScript에 대하여를 참고하세요.

이 문서는 JavaScript 언어 자체만 다루며 웹 페이지를 비롯한 다른 사용 환경에 대해서는 다루지 않습니다. 웹 페이지의 특정 API에 대하여 알고 싶다면 웹 APIDOM을 참고하시기 바랍니다.

JavaScript의 표준은 ECMAScript입니다. 2012년 기준 최신 브라우저는 모두 ECMAScript 5.1을 온전히 지원합니다. 이전 브라우저의 경우는 최소한 ECMAScript 3까지는 지원합니다. 2015년 6월 17일 ECMA International에서는 공식명 ECMAScript 2015 로 불리는 ECMAScript의 6번째 주 버전을 발표했습니다(보통 ECMAScript 6 혹은 ES6으로 불립니다). 그 이후 ECMAScript 표준의 출시 주기는 1년입니다. 이 문서는 최신 초안(현재 ECMAScript 2020)에 기반을 둡니다.

JavaScript를 Java 프로그래밍 언어와 혼동해서는 안 됩니다. "Java"와 "JavaScript" 두 가지 모두 Oracle이 미국 및 기타 국가에 등록한 상표입니다. 하지만, 두 언어는 문법 체계와 사용 방법이 전혀 다릅니다.

자습서

안내서 및 자습서와 함께 JavaScript 프로그램을 짜는 법을 알아보세요.

입문

JavaScript를 배우고 싶지만 JavaScript 또는 프로그래밍에 대한 이전 경험이 없는 경우 Web 개발 학습하기의 JavaScript 주제를 방문하세요. 사용할 수 있는 전체 모듈은 다음과 같습니다.

JavaScript 첫 걸음
"JavaScript는 무엇인가요?", "어떤 모습인가요?", "뭘 할 수 있나요?"와 같은 기본적인 질문에 대답하면서 변수, 문자열, 숫자, 배열과 같은 JavaScript의 주요 기능에 대해서도 알아봅니다.
JavaScript 구성 요소
JavaScript의 핵심 기본 기능에 대한 이해를 넓히기 위해 조건문, 반복문, 함수, 이벤트와 같이 흔히 찾을 수 코드 블록의 형태에 대해서 알아봅니다.
JavaScript 객체 소개
JavaScript에 대한 지식을 쌓고, 보다 효율적인 코드를 작성하기 위해서는 JavaScript의 객체지향적인 모습을 이해해야 합니다.
비동기 JavaScript
비동기 JavaScript가 중요한 이유와, 비동기적 코드를 사용해 서버에서 리소스 가져오기 등 블록킹 연산을 효율적으로 처리하는 방법을 알아봅니다.
클라이언트측 웹 API
API란 무엇인지 탐색해보고, 제일 흔히 사용해서 개발 중 자주 마주치게 될 일부 API의 사용법을 배웁니다.

JavaScript 안내서

JavaScript 안내서

JavaScript 또는 다른 언어의 경험을 가진 독자를 대상으로 한 JavaScript 상세 안내서입니다.

중급

JavaScript 재입문
JavaScript에 대해 안다고 생각하는 이들을 위한 개요.
JavaScript 데이터 구조
JavaScript에서 이용 가능한 데이터 구조 개요.
같음 비교 및 동일성
JavaScript는 세 가지 다른 값 비교 연산을 제공합니다: ===를 사용한 엄격한(strict) 같음, ==를 사용한 느슨한(loose) 같음 및 Object.is() 메서드.
클로저
클로저는 함수와 그 함수가 선언 된 어휘 환경의 조합입니다.

고급

상속 및 프로토타입 체인
널리 오해 받고 과소 평가된 프로토타입(원형) 기반 상속의 설명.
엄격 모드
엄격 모드는 초기화 전에 어떤 변수도 사용할 수 없음을 정의합니다. 이는 빠른 성능 및 쉬운 디버깅을 위한 ECMAScript 5의 제한된 변형(variant)입니다.
JavaScript 형식화된 배열
JavaScript 형식화된 배열은 원시(raw) 이진 데이터에 접근하기 위한 메커니즘을 제공합니다.
메모리 관리
JavaScript에서 메모리 라이프 사이클 및 가비지 컬렉션.
동시성 모델 및 이벤트 루프
JavaScript "이벤트 루프"에 기반을 둔 동시성 모델이 있습니다.

참고서

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

표준 객체
Array, Boolean, Date, Error, Function, JSON, Math, Number, Object, RegExp, String, Map, Set, WeakMap, WeakSet 등 표준 내장 객체 알아가기.
표현식 및 연산자
JavaScript 연산자 instanceof, typeof, new, this의 행동, 연산자 우선순위 등에 대해 더 알아보기.
명령문 및 선언문
do-while, for-in, for-of, try-catch, let, var, const, if-else, switch 등의 JavaScript 명령문 및 키워드 작동 법 배우기.
함수
어플리케이션 개발에 JavaScript 함수로 작업하는 법 배우기.

도구 & 자원

JavaScript 코드 작성과 디버깅을 돕는 유용한 도구 모음입니다.

Firefox 개발자 도구
Web Console, JavaScript Profiler, Debugger 등.
JavaScript 쉘
빠르게 JavaScript 코드 조각(snippet)을 테스트할 수 있는 JavaScript 쉘.
TogetherJS
간편한 협업.
Stack Overflow
"JavaScript" 태그가 달린 Stack Overflow 질문.
JavaScript 버전 및 출시 노트
JavaScript 기능 역사 및 구현 상태 훑어보기.
JSFiddle
JavaScript, CSS, HTML 편집 및 실시간 결과 얻기. 외부 자원(resource)을 사용하며 온라인으로 팀과 협업하기.
Plunker
Plunker는 온라인에서 여러분의 웹 개발 아이디어를 실제로 만들거나 다른사람과 공유 협업하는 커뮤니티 입니다. 실시간으로 JavaScrip, CSS, HTML을 만들고 편집 할 수 있습니다.