JavaScript(JS)는 가벼운 인터프리터 또는 JIT 컴파일 프로그래밍 언어로, 일급 함수를 지원합니다. 웹 페이지의 스크립트 언어로서 제일 유명하지만 Node.js, Apache CouchDB, Adobe Acrobat처럼 많은 비 브라우저 환경에서도 사용하고 있습니다. JavaScript는 프로토타입 기반의 동적 다중 패러다임 스크립트 언어로, 객체지향형, 명령형, 선언형(함수형 프로그래밍 등) 스타일을 지원합니다. 자세한 내용은 JavaScript에 대하여를 참고하세요.
이 문서는 JavaScript 언어 자체만 다루며 웹 페이지를 비롯한 다른 사용 환경에 대해서는 다루지 않습니다. 웹 페이지의 특정 API에 대하여 알고 싶다면 웹 API와 DOM을 참고하시기 바랍니다.
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 또는 다른 언어에 대한 경험이있는 사용자를 대상으로 한 JavaScript 가이드입니다.
중급
- 클라이언트 사이드 웹 API
- 웹사이트나 어플리케이션을 위한 클라이언트 사이드 자바스크립트를 작성할때 API를 사용하게 될 것입니다. 브라우저를 다양한 방면으로 조작하는 인터페이스와, 사이트가 돌아가는 운영체제, 혹은 다른 웹 사이트나 서비스에서 받는 데이터들까지, API를 사용하지 않고 개발하기는 힘듭니다.
이 모듈에서는 API가 무엇인지, 그리고 개발하면서 만나게될 가장 보편적인 API의 사용방법에 대해 알아 볼 것입니다. - 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을 만들고 편집 할 수 있습니다.