This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

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๊ฐ€ ์ค‘์š”ํ•œ ์ด์œ ์™€, ๋น„๋™๊ธฐ์  ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์„œ๋ฒ„์—์„œ ๋ฆฌ์†Œ์Šค ๊ฐ€์ ธ์˜ค๊ธฐ ๋“ฑ ๋ธ”๋กํ‚น ์—ฐ์‚ฐ์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ์ธก ์›น API

API๋ž€ ๋ฌด์—‡์ธ์ง€ ํƒ์ƒ‰ํ•ด๋ณด๊ณ , ๊ฐœ๋ฐœ ์ž‘์—…์—์„œ ์ž์ฃผ ์ ‘ํ•˜๊ฒŒ ๋  ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

JavaScript ์•ˆ๋‚ด์„œ

JavaScript ์•ˆ๋‚ด์„œ

JavaScript ๋˜๋Š” ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝํ—˜์ด ์žˆ๋Š” ๋…์ž๋“ค์„ ๋Œ€์ƒ์œผ๋กœํ•œ JavaScript ์–ธ์–ด์— ๋Œ€ํ•œ ์ƒ์„ธ ๊ฐ€์ด๋“œ์ž…๋‹ˆ๋‹ค.

์ค‘๊ธ‰

ํด๋ผ์ด์–ธํŠธ ์ธก JavaScript ํ”„๋ ˆ์ž„์›Œํฌ ์ดํ•ด

JavaScript ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ํ˜„๋Œ€ ํ”„๋ŸฐํŠธ ์—”๋“œ ์›น ๊ฐœ๋ฐœ์˜ ํ•„์ˆ˜ ๋ถ€๋ถ„์œผ๋กœ, ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์ƒํ˜ธ์ž‘์šฉํ˜• ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ์œ„ํ•œ ์ž…์ฆ๋œ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ๋Š” ์˜ค๋Š˜๋‚  ๊ฐ€์žฅ ์ธ๊ธฐ์žˆ๋Š” ์ผ๋ถ€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋‹ค๋ฃจ๋Š” ์ž์Šต์„œ ์‹œ๋ฆฌ์ฆˆ๋กœ ์ด๋™ํ•˜๊ธฐ ์ „์— ํด๋ผ์ด์–ธํŠธ ์ธก ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹๊ณผ ๋„๊ตฌ ์ง‘ํ•ฉ์— ๋งž๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ๋ฐฐ๊ฒฝ ์ง€์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

JavaScript ๊ฐœ์š”

๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ๋„˜์–ด ์˜จ ์‚ฌ๋žŒ๋“ค์ด ๋นจ๋ฆฌ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” JavaScript์˜ ๊ธฐ๋ณธ ๊ตฌ๋ฌธ๊ณผ ์˜๋ฏธ ์ฒด๊ณ„์— ๋Œ€ํ•œ ๊ฐœ์š”์ž…๋‹ˆ๋‹ค.

JavaScript ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ

JavaScript์—์„œ ์ด์šฉ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๊ฐœ์š”์ž…๋‹ˆ๋‹ค.

๋™๋“ฑ์„ฑ ๋น„๊ต ๋ฐ ๋™์ผ์„ฑ

JavaScript๋Š” ===๋ฅผ ์‚ฌ์šฉํ•œ ์™„์ „ ๋™๋“ฑ, ==๋ฅผ ์‚ฌ์šฉํ•œ ๋А์Šจํ•œ ๋™๋“ฑ, ๊ทธ๋ฆฌ๊ณ  Object.is() ๋ฉ”์„œ๋“œ์˜ ์„ธ ๊ฐ€์ง€ ๊ฐ’ ๋น„๊ต ์—ฐ์‚ฐ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ์˜ ์—ด๊ฑฐ ๊ฐ€๋Šฅ์„ฑ๊ณผ ์†Œ์œ ๊ถŒ

๊ฐ์ฒด ์†์„ฑ ๊ทธ๋ฃน์„ ํ•˜๋‚˜์”ฉ ๋ฐฉ๋ฌธํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์†์„ฑ์˜ ์—ด๊ฑฐ ๊ฐ€๋Šฅ์„ฑ๊ณผ ์†Œ์œ ๊ถŒ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

ํด๋กœ์ €

ํด๋กœ์ €๋Š” ํ•จ์ˆ˜์™€ ๊ทธ ํ•จ์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ์–ดํœ˜ (lexical) ํ™˜๊ฒฝ์˜ ์กฐํ•ฉ์ž…๋‹ˆ๋‹ค.

๊ณ ๊ธ‰

์ƒ์† ๋ฐ ํ”„๋กœํ† ํƒ€์ž… ์ฒด์ธ

๋„๋ฆฌ ์˜คํ•ด ๋ฐ›๊ณ  ๊ณผ์†Œ ํ‰๊ฐ€๋œ ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜ ์ƒ์†์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

JavaScript ํ˜•์‹ํ™” ๋ฐฐ์—ด

JavaScript ํ˜•์‹ํ™”๋œ ๋ฐฐ์—ด์€ ์›์‹œ ์ด์ง„ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

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 ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐ€์žฅ ์ ์ ˆํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.