JavaScript (JS)는 가벼운 인터프리터형 또는 JIT-컴파일형 프로그래밍 언어로, first-class functions를 지원합니다. 주로 웹 페이지를 위한 스크립팅 언어로 알려졌지만, Node.jsApache 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 2019)에 기반을 둡니다.

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

자습서

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

입문

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

JavaScript first steps
변수, 문자열, 숫자 및 배열과 같은 주요 JavaScript 기능에 대해 알아보고  "JavaScript는 무엇입니까?", "어떻게 생겼습니까?", "무엇을 할 수 있습니까?"와 같은 기본적인 질문에 대답합니다.
JavaScript building blocks
JavaScript의 핵심 기본 기능에 대해 계속 설명하면서 조건부 명령문, 루프, 함수 및 이벤트와 같이 일반적으로 발생하는 코드 블록 유형에 대해 배웁니다.
Introducing JavaScript objects
JavaScript에 대한 객체 지향적인 특성은 언어에 대한 지식을 갖추고 더 효율적인 코드 작성을 원한다면 이해하는 것이 중요합니다. 따라서 우리는이 모듈을 제공하여 도움을 줍니다.

JavaScript 가이드

JavaScript Guide

JavaScript 또는 다른 언어에 대한 경험이있는 사용자를 대상으로 한 JavaScript 가이드입니다.

중급

클라이언트 사이드 웹 API
웹사이트나 어플리케이션을 위한 클라이언트 사이드 자바스크립트를 작성할때 API를 사용하게 될 것입니다. 브라우저를 다양한 방면으로 조작하는 인터페이스와, 사이트가 돌아가는 운영체제, 혹은 다른 웹 사이트나 서비스에서 받는 데이터들까지,  API를 사용하지 않고 개발하기는 힘듭니다.
이 모듈에서는 API가 무엇인지, 그리고 개발하면서 만나게될 가장 보편적인 API의 사용방법에 대해 알아 볼 것입니다. 
JavaScript 재입문
JavaScript에 대해 안다고 생각하는 이들을 위한 개요.
JavaScript 데이터 구조
JavaScript에서 이용 가능한 데이터 구조 개요.
같음 비교 및 동일성
JavaScript는 세 가지 다른 값 비교 연산을 제공합니다: ===를 사용한 엄격한(strict) 같음, ==를 사용한 느슨한(loose) 같음 및 Object.is() 메서드.
Closures
클로저는 함수와 그 함수가 선언 된 어휘 환경의 조합입니다.

고급

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

참고서

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

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

도구 & 자원

JavaScript 코드 작성 및 디버깅을 돕는 도구.

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

Join the JavaScript community

Choose your preferred method for joining the discussion:

문서 태그 및 공헌자

최종 변경자: urty5656,