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 ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์ ์ ˆํ•œ ๊ตฌ๋ฌธ์„ ๊ฐ–๋Š” ๋ฌธ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํ•œ ๋ฌธ์ด ์—ฌ๋Ÿฌ ์ค„์— ๊ฑธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ฌธ์€ ๊ฐ ๋ฌธ์ด ์„ธ๋ฏธ์ฝœ๋ก ์œผ๋กœ ๊ตฌ๋ถ„๋œ ๊ฒฝ์šฐ ํ•œ ์ค„์— ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํ‚ค์›Œ๋“œ ํ•˜๋‚˜๊ฐ€ ์•„๋‹ˆ๋ผ, ํ‚ค์›Œ๋“œ ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค.

ํ•ญ๋ชฉ๋ณ„ ๋ฌธ ๋ฐ ์„ ์–ธ

์•ŒํŒŒ๋ฒณ์ˆœ ๋ชฉ๋ก์€ ์™ผ์ชฝ ์‚ฌ์ด๋“œ๋ฐ”๋ฅผ ๋ณด์„ธ์š”.

ํ๋ฆ„ ์ œ์–ด

Block

๋ธ”๋ก๋ฌธ์€ 0๊ฐœ ์ด์ƒ์˜ ๋ฌธ์„ ๋ฌถ์„ ๋•Œ ์“ฐ์ž…๋‹ˆ๋‹ค. ๋ธ”๋ก์€ ์ค‘๊ด„ํ˜ธ ํ•œ ์Œ์œผ๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค.

break

ํ˜„์žฌ ๋ฃจํ”„, switch ๋˜๋Š” label ๋ฌธ์„ ์ข…๋ฃŒํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ ์ œ์–ด๋ฅผ ์ข…๋ฃŒ๋œ ๋ฌธ์˜ ๋‹ค์Œ ๋ฌธ์œผ๋กœ ๋„˜๊ฒจ์ค๋‹ˆ๋‹ค.

continue

ํ˜„์žฌ ๋˜๋Š” ๋ ˆ์ด๋ธ” ๋‹ฌ๋ฆฐ ๋ฃจํ”„์˜ ํ˜„์žฌ ๋ฐ˜๋ณต ์ค‘์ธ ๋ฌธ์˜ ์‹คํ–‰์„ ์ข…๋ฃŒํ•˜๊ณ  ๋ฃจํ”„์˜ ์‹คํ–‰์€ ๋‹ค์Œ ๋ฐ˜๋ณต์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.

empty

empty ๋ฌธ์€ ๋‚ด์šฉ์ด ์—†๋Š” ๋นˆ ๋ฌธ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค, ๋น„๋ก JavaScript ๊ตฌ๋ฌธ์ด ๋ฌธ์„ ๊ธฐ๋Œ€ํ•  ๊ฒƒ์ด์ง€๋งŒ.

if...else

์ง€์ •๋œ ์กฐ๊ฑด์ด true๋ฉด ๋ฌธ์„ ์‹คํ–‰. ์กฐ๊ฑด์ด false์ธ ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ๋ฌธ์ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

switch

์‹์˜ ๊ฐ’์ด case ์ ˆ๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ์‹์„ ํ‰๊ฐ€ํ•˜๊ณ  case ์ ˆ๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

throw

์‚ฌ์šฉ์ž ์ •์˜ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

try...catch

์‹œ๋„(try)ํ•  ๋ฌธ ๋ธ”๋ก์„ ํ‘œ์‹œํ•˜๊ณ  ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒ๋˜์–ด์•ผ ํ•˜๋Š” ์‘๋‹ต์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์„ ์–ธ

var

๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค, ๋ณ€์ˆ˜๋ฅผ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

let

๋ธ”๋ก ๋ฒ”์œ„ ์ง€์—ญ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค, ๋ณ€์ˆ˜๋ฅผ ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const

์ฝ๊ธฐ ์ „์šฉ ์œ ๋ช…(named) ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.

ํ•จ์ˆ˜ ๋ฐ ํด๋ž˜์Šค

function

์ง€์ •๋œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ–๋Š” ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.

function*

๋ฐ˜๋ณต๊ธฐ๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ์ƒ์„ฑ๊ธฐ ํ•จ์ˆ˜.

return

ํ•จ์ˆ˜์— ์˜ํ•ด ๋ฐ˜ํ™˜๋˜๋Š” ๊ฐ’์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

class

ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋ณต

do...while

ํ…Œ์ŠคํŠธ ์กฐ๊ฑด์ด ๊ฑฐ์ง“์œผ๋กœ ํ‰๊ฐ€๋  ๋•Œ๊นŒ์ง€ ์ง€์ •๋œ ๋ฌธ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฃจํ”„๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์กฐ๊ฑด์€ ๋ฌธ์„ ์‹คํ–‰ํ•œ ํ›„ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค, ๊ทธ ๊ฒฐ๊ณผ ์ง€์ •๋œ ๋ฌธ์€ ์ ์–ด๋„ ํ•œ ๋ฒˆ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

for

๊ด„ํ˜ธ๋กœ ๋ฌถ์ด๊ณ  ์„ธ๋ฏธ์ฝœ๋ก ์œผ๋กœ ๊ตฌ๋ถ„๋œ ์„ ํƒ์‚ฌํ•ญ ์‹ ์…‹์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ฃจํ”„๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค, ๋ฃจํ”„์—์„œ ์‹คํ–‰๋˜๋Š” ๋ฌธ์ด ๋’ค๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

for each...in ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค ๋น„ํ‘œ์ค€

๊ฐ์ฒด์˜ ๋ชจ๋“  ์†์„ฑ๊ฐ’์— ๋Œ€ํ•ด ์ง€์ •๋œ ๋ณ€์ˆ˜๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ฐœ๋ณ„ ์†์„ฑ์— ๋Œ€ํ•ด, ์ง€์ •๋œ ๋ฌธ์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

for...in

์ž„์˜์˜ ์ˆœ์„œ๋กœ ๊ฐ์ฒด์˜ ์—ด๊ฑฐ ์†์„ฑ์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ฐœ๋ณ„ ์†์„ฑ์— ๋Œ€ํ•ด, ๋ฌธ์€ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

for...of

๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด (๋ฐฐ์—ด, ๋ฐฐ์—ด ๊ฐ™์€ ๊ฐ์ฒด, ๋ฐ˜๋ณต๊ธฐ ๋ฐ ์ƒ์„ฑ๊ธฐ ํฌํ•จ) ๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค, ๊ฐ ๊ฐœ๋ณ„ ์†์„ฑ๊ฐ’์— ๋Œ€ํ•ด ์‹คํ–‰๋˜๋Š” ๋ฌธ์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž ์ •์˜ ๋ฐ˜๋ณต ํ›„ํฌ๋ฅผ ํ˜ธ์ถœํ•˜๋Š”.

while

ํ…Œ์ŠคํŠธ ์กฐ๊ฑด์ด true๋กœ ํ‰๊ฐ€๋˜๋Š” ํ•œ ์ง€์ •๋œ ๋ฌธ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฃจํ”„๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์กฐ๊ฑด์€ ๋ฌธ์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค.

๊ธฐํƒ€

debugger

์ด์šฉ ๊ฐ€๋Šฅํ•œ ๋””๋ฒ„๊น… ๊ธฐ๋Šฅ์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด์šฉ ๊ฐ€๋Šฅํ•œ ๊ธฐ๋Šฅ์ด ์—†๋Š” ๊ฒฝ์šฐ, ์ด ๋ฌธ์€ ์•„๋ฌด ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

export

์™ธ๋ถ€ ๋ชจ๋“ˆ, ๋‹ค๋ฅธ ์Šคํฌ๋ฆฝํŠธ์— ๊ฐ€์ ธ์˜ฌ(import) ์ˆ˜ ์žˆ๋„๋ก ํ•จ์ˆ˜๋ฅผ ๋‚ด๋ณด๋‚ด(export)๋Š”๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

import

์™ธ๋ถ€ ๋ชจ๋“ˆ, ๋‹ค๋ฅธ ์Šคํฌ๋ฆฝํŠธ์—์„œ ๋‚ด๋ณด๋‚ธ ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ค๋Š”๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

label

break ๋˜๋Š” continue ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” ์‹๋ณ„์ž ์žˆ๋Š” ๋ฌธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

with ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

๋ฌธ์˜ ์Šค์ฝ”ํ”„ ์ฒด์ธ์„ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.

๋ช…์„ธ์„œ

Specification
ECMAScriptยฎ 2026 Language Specification
# sec-break-statement
ECMAScriptยฎ 2026 Language Specification
# sec-switch-statement
ECMAScriptยฎ 2026 Language Specification
# sec-while-statement
ECMAScriptยฎ 2026 Language Specification
# sec-throw-statement
ECMAScriptยฎ 2026 Language Specification
# sec-with-statement
ECMAScriptยฎ 2026 Language Specification
# sec-labelled-statements
ECMAScriptยฎ 2026 Language Specification
# sec-for-in-and-for-of-statements
ECMAScriptยฎ 2026 Language Specification
# sec-try-statement
ECMAScriptยฎ 2026 Language Specification
# sec-function-definitions
ECMAScriptยฎ 2026 Language Specification
# sec-return-statement
ECMAScriptยฎ 2026 Language Specification
# sec-continue-statement
ECMAScriptยฎ 2026 Language Specification
# sec-variable-statement
ECMAScriptยฎ 2026 Language Specification
# sec-imports
ECMAScriptยฎ 2026 Language Specification
# sec-exports
ECMAScriptยฎ 2026 Language Specification
# sec-for-statement
ECMAScriptยฎ 2026 Language Specification
# sec-empty-statement
ECMAScriptยฎ 2026 Language Specification
# prod-WithClause
ECMAScriptยฎ 2026 Language Specification
# sec-debugger-statement
ECMAScriptยฎ 2026 Language Specification
# sec-async-generator-function-definitions
ECMAScriptยฎ 2026 Language Specification
# sec-do-while-statement
ECMAScriptยฎ 2026 Language Specification
# sec-let-and-const-declarations
ECMAScriptยฎ 2026 Language Specification
# sec-generator-function-definitions
ECMAScriptยฎ 2026 Language Specification
# sec-async-function-definitions
ECMAScriptยฎ 2026 Language Specification
# sec-if-statement
ECMAScriptยฎ 2026 Language Specification
# sec-class-definitions
ECMAScriptยฎ 2026 Language Specification
# sec-block
ECMAScript Async Explicit Resource Management
# prod-AwaitUsingDeclaration
ECMAScript Async Explicit Resource Management
# prod-UsingDeclaration

๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ

๊ฐ™์ด ๋ณด๊ธฐ