---
title: JavaScript
slug: Web/JavaScript
tags:
- JavaScript
- Landing
- Landing page
- Learn
- l10n:priority
- 자바스크립트
translation_of: Web/JavaScript
---
{{JsSidebar}}
JavaScript (JS)는 가벼운, 인터프리터 혹은 just-in-time 컴파일 프로그래밍 언어로, {{Glossary("First-class Function", "일급 함수")}}를 지원합니다. 웹 페이지를 위한 스크립트 언어로 잘 알려져 있지만, {{Glossary("Node.js")}}, Apache CouchDB, Adobe Acrobat처럼 많은 비 브라우저 환경에서도 사용하고 있습니다. JavaScript는 {{Glossary("Prototype-based programming", "프로토타입 기반")}}, 다중 패러다임, 단일 스레드, 동적 언어로, 객체지향형, 명령형, 선언형(함수형 프로그래밍 등) 스타일을 지원합니다. 자세한 내용은 JavaScript에 대하여를 참고하세요.
해당 섹션은 JavaScript 언어 자체를 다루며 웹 페이지 또는 다른 사용 환경에 대해 다루지 않습니다. 웹 페이지의 특정 {{Glossary("API","API")}}에 대한 정보를 알고 싶다면, 웹 API와 {{Glossary("DOM")}}을 참고하시기 바랍니다.
JavaScript의 표준은 ECMAScript 언어 사양 (ECMA-262) 및 ECMAScript 국제화 API 사양 (ECMA-402)입니다. MDN에서 제공하는 JavaScript 문서는 ECMA-262 및 ECMA-402의 최신 초안 버전을 기반으로합니다. 새로운 ECMAScript 기능에 대한 일부 제안이 이미 브라우저에 구현 된 경우, MDN의 문서 및 예제에서 이러한 새로운 기능 중 일부를 사용할 수 있습니다.
JavaScript와 Java 프로그래밍 언어를 혼동해서는 안 됩니다. "Java"와 "JavaScript" 는 모두 상표이자 미국 및 기타 국가에 등록된 Oracle의 상표입니다. 다만 두 프로그래밍 언어의 구문, 시맨틱 및 사용 방법이 매우 다릅니다.
프론트 엔드 웹 개발자가되고 싶으신가요?
목표 달성에 필요한 모든 필수 정보가 포함된 과정을 마련했습니다.
시작하기
자습서
가이드 및 자습서를 통해 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는 세 가지 값 비교 연산을 제공합니다:
===
를 사용한 엄격한(strict) 동등성, ==
를 사용한 느슨한 동등성 및 {{jsxref("Global_Objects/Object/is", "Object.is()")}} 메서드.
- 클로저
- 클로저는 함수와 그 함수가 선언된 어휘 (lexical) 환경의 조합입니다.
고급
- 상속 및 프로토타입 체인
- 널리 오해 받고 과소 평가된 프로토타입 기반 상속의 설명.
- 엄격 모드
- 엄격 모드는 초기화 전에 변수를 사용할 수 없음을 정의합니다. 이는 빠른 성능 및 쉬운 디버깅을 위한 ECMAScript 5의 제한된 변형(variant)입니다.
- JavaScript 형식화된 배열
- JavaScript 형식화된 배열은 원시 이진 데이터에 접근하기 위한 메커니즘을 제공합니다.
- 메모리 관리
- JavaScript의 메모리 라이프 사이클 및 가비지 컬렉션.
- 동시성 모델 및 이벤트 루프
- JavaScript에는 "이벤트 루프"에 기반을 둔 동시성 모델이 있습니다.
참고서
전체 JavaScript 참고서를 훑어보세요.
- 표준 객체
- {{jsxref("Array")}}, {{jsxref("Boolean")}}, {{jsxref("Date")}}, {{jsxref("Error")}}, {{jsxref("Function")}}, {{jsxref("JSON")}}, {{jsxref("Math")}}, {{jsxref("Number")}}, {{jsxref("Object")}}, {{jsxref("RegExp")}}, {{jsxref("String")}}, {{jsxref("Map")}}, {{jsxref("Set")}}, {{jsxref("WeakMap")}}, {{jsxref("WeakSet")}} 등 표준 내장 객체 알아가기.
- 표현식 및 연산자
- JavaScript 연산자 {{jsxref("Operators/instanceof", "instanceof")}}, {{jsxref("Operators/typeof", "typeof")}}, {{jsxref("Operators/new", "new")}}, {{jsxref("Operators/this", "this")}}의 동작, 연산자 우선순위 등에 대해 더 알아보기.
- 명령문 및 선언문
- {{jsxref("Statements/do...while", "do-while")}}, {{jsxref("Statements/for...in", "for-in")}}, {{jsxref("Statements/for...of", "for-of")}}, {{jsxref("Statements/try...catch", "try-catch")}}, {{jsxref("Statements/let", "let")}}, {{jsxref("Statements/var", "var")}}, {{jsxref("Statements/const", "const")}}, {{jsxref("Statements/if...else", "if-else")}}, {{jsxref("Statements/switch", "switch")}} 등의 JavaScript의 구문 및 키워드 작동법 배우기.
- 함수
- 애플리케이션 개발을 위한 JavaScript 함수로 작업하는 법 배우기.
도구 & 자원
JavaScript 코드 작성과 디버깅을 돕는 유용한 도구 모음입니다.
- Firefox 개발자 도구
- Web Console, JavaScript Profiler, Debugger 등.
- JavaScript 쉘
- JavaScript 쉘을 사용하면 JavaScript 코드 스니펫을 빠르게 테스트 할 수 있습니다.
- JavaScript 배우기
- 야심찬 웹 개발자를 위한 훌륭한 리소스 — 짧은 강의와 상호작용형 환경에서 JavaScript를 배우세요. 처음 40 개의 강의는 무료이며 전체 과정은 일회성 소액의 금액으로 제공됩니다.
- TogetherJS
- 협업이 쉬워졌습니다. 사이트에 TogetherJS를 추가하면 사용자가 웹 사이트에서 실시간으로 서로를 도울 수 있습니다!
- Stack Overflow
- "JavaScript" 태그가 달린 Stack Overflow 질문들 입니다.
- JSFiddle
- JavaScript, CSS, HTML 편집 및 실시간 결과를 얻을 수 있으며, 외부 자원(resource)을 사용하며 온라인으로 팀과 협업이 가능합니다.
- Plunker
- Plunker는 온라인에서 여러분의 웹 개발 아이디어를 실제로 만들거나 다른사람과 공유 협업하는 커뮤니티 입니다. JavaScript, CSS, HTML 파일을 편집하고 실시간 결과와 파일 구조를 얻으세요.
- JSBin
-
JS Bin은 오픈 소스 협업 웹 개발 디버깅 도구입니다.
- Codepen
-
Codepen은 실시간으로 실행 결과를 볼 수 있으며 사용되는 또 다른 협업 웹 개발 도구입니다.
- StackBlitz
-
StackBlitz는 React, Angular 등을 사용하여 풀 스택 애플리케이션을 호스팅하고 배포 할 수 있는 또 다른 온라인 플레이 그라운드/디버깅 도구입니다.
- RunJS
-
RunJS는 데스크톱 플레이그라운드/스크래치 패드 도구로, 실시간 결과를 제공하고 노드 및 브라우저 API에 대한 액세스를 제공합니다.