๐Ÿ’ป์šฉ๋‡ฝ ๊ฐœ๋ฐœ ๋…ธํŠธ๐Ÿ’ป
article thumbnail
[JavaScript] ์‹คํ–‰ ์ปจํ…์ŠคํŠธ(Execution Context)๊ฐ€ ๋ฌด์—‡์ผ๊นŒ์š”?

๋“ค์–ด๊ฐ€๋ฉฐ ๐Ÿ“– ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ์žˆ์–ด์„œ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ(Execution Context)์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ์ˆ™์ง€ํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ•ต์‹ฌ ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜๋กœ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ฝ”๋“œ์˜ ์‹คํ–‰ ์ˆœ์„œ์™€ ๋ฐฉ์‹์„ ๊ฒฐ์ •ํ•˜๊ฒŒ ๋˜์ฃ . ์‹คํ–‰ ์ปจํ…์ŠคํŠธ(Excution Context)๋ž€โ“ ์‹คํ–‰ํ•  ์ฝ”๋“œ์— ์ œ๊ณตํ•  ํ™˜๊ฒฝ ์ •๋ณด๋“ค์„ ๋ชจ์•„๋†“์€ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋™์  ์–ธ์–ด๋กœ์„œ์˜ ์„ฑ๊ฒฉ์„ ๊ฐ€์žฅ ์ž˜ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๊ฐ€ ํ™œ์„ฑํ™”๋˜๋Š” ์‹œ์ ์— ์•„๋ž˜์™€ ๊ฐ™์€ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ด์ŠคํŒ…(hoisting) ์™ธ๋ถ€ ํ™˜๊ฒฝ ์ •๋ณด ๊ตฌ์„ฑ this ๊ฐ’ ์„ค์ • ๋“ฑ๋“ฑ ์ด๋กœ ์ธํ•ด ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š” ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์—†๋Š” ํŠน์ดํ•œ ํ˜•์ƒ๋“ค์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋™์ž‘ ๊ณผ์ • ๋™์ผํ•œ ํ™˜๊ฒฝ์— ์žˆ๋Š” ์ฝ”๋“œ๋“ค์„ ์‹คํ–‰ํ•  ๋•Œ ํ•„์š”ํ•œ ํ™˜๊ฒฝ ์ •๋ณด..

article thumbnail
[JavaScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ํŒจํ„ด์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ด…์‹œ๋‹ค. (Callback, Promise, Generator, async/await)

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ํŒจํ„ด์„ ์•Œ์•„๋ณด๊ธฐ ์•ž์„œ, ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”? ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ž€? ํŠน์ • ์ฝ”๋“œ์˜ ์—ฐ์‚ฐ์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์ „์ฒด ์ฝ”๋“œ์˜ ์‹คํ–‰์„ ์ค‘๋‹จํ•˜์ง€ ์•Š๊ณ , ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์šฐ์„ ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋™์ž‘ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” '๋น„๋™๊ธฐ ํ•จ์ˆ˜'๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์˜ ํ•œ๊ณ„์ ์€ ์ž‘์—… ์™„๋ฃŒ ์‹œ์ ์„ ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๊ฒƒ์€ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ์˜ ๋ณธ์งˆ์ ์ธ ํŠน์„ฑ์ด๋ฉฐ, ์ด๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ(single-threaded) ๊ธฐ๋ฐ˜์˜ ์–ธ์–ด๋กœ, ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ž‘์—…๋งŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋œ ์ˆœ์„œ๋Œ€๋กœ, ์œ„์—์„œ ์•„๋ž˜๋กœ, ๋™๊ธฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋น„๋™๊ธฐ์ ์ธ ..

article thumbnail
[JavaScript] this๊ฐ€ ๋ฌด์—‡์ผ๊นŒ์š”? ์ฝ”๋“œ ์˜ˆ์ œ๋กœ ์‰ฝ๊ฒŒ ์•Œ์•„๋ด…์‹œ๋‹ค.

this ํ‚ค์›Œ๋“œ์˜ ์ •์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ this๋Š” ํ˜„์žฌ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํŠน๋ณ„ํ•œ ํ‚ค์›Œ๋“œ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ํ•จ๊ป˜ ๊ฒฐ์ •์ด ๋˜๋Š”๋ฐ์š”. ์ฆ‰, this์˜ ๊ฐ’์€ ํ•จ์ˆ˜๊ฐ€ ์–ด๋–ป๊ฒŒ ํ˜ธ์ถœ๋˜์—ˆ๋Š”์ง€์— ๋”ฐ๋ผ ๋ณ€ํ•˜๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ํ•จ์ˆ˜์—์„œ์˜ this ์ผ๋ฐ˜ํ•จ์ˆ˜์—์„œ this๋Š” '์ „์—ญ ๊ฐ์ฒด'๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ์ „์—ญ ๊ฐ์ฒด๋ž€? ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์—์„œ๋Š” window, Node.js ํ™˜๊ฒฝ์—์„œ๋Š” global ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. function main() { console.log(this); } main(); // window ๊ฐ์ฒด ๋˜๋Š” global ๊ฐ์ฒด ์ถœ๋ ฅ ์œ„์™€ ๊ฐ™์ด ์ด๋ ‡๊ฒŒ ์ „์—ญ์ ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์€ function main() { console.log(this); } ..

article thumbnail
[JavaScript] ์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง๊ณผ ์บก์ณ๋ง์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋ด…์‹œ๋‹ค.

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ•ต์‹ฌ ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜์ธ ์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง๊ณผ ์บก์ณ๋ง์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฒ„๋ธ”๋ง(Bubbling) ์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”? ํ•œ ์š”์†Œ์— ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ํ•ด๋‹น ์š”์†Œ์— ํ• ๋‹น๋œ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋™์ž‘ํ•˜๊ณ , ์ด์–ด์„œ ๋ถ€๋ชจ ์š”์†Œ์˜ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ตœ์ƒ๋‹จ์˜ ์กฐ์ƒ ์š”์†Œ๋ฅผ ๋งŒ๋‚  ๋•Œ๊นŒ์ง€ ํ•ด๋‹น ๊ณผ์ •์ด ๋ฐ˜๋ณต์ด ๋ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ์•„๋ž˜ ์ฝ”๋“œ ์˜ˆ์ œ๋ฅผ ๋ณด๋ฉด ๋ฐ”๋กœ ์ดํ•ด๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์•ˆ์ชฝ์— ์žˆ๋Š” pํƒœ๊ทธ๋ฅผ ํด๋ฆญํ–ˆ๋Š”๋ฐ 3๊ฐœ์˜ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋™์ž‘ํ•˜๋Š” ๊ฒŒ ๋ณด์ด์‹œ๋‚˜์š”? p์— ํ• ๋‹น๋œ onclick ํ•ธ๋“ค๋Ÿฌ ์‹คํ–‰ ๋ฐ”๊นฅ์˜ div์— ํ• ๋‹น๋œ ํ•ธ๋“ค๋Ÿฌ ์‹คํ–‰ ๊ทธ ๋ฐ”๊นฅ์˜ form์— ํ• ๋‹น๋œ ํ•ธ๋“ค๋Ÿฌ ์‹คํ–‰ documnet ๊ฐ์ฒด๋ฅผ ๋งŒ๋‚  ๋•Œ๊นŒ์ง€, ๊ฐ ์š”์†Œ์— ํ• ๋‹น๋œ onclick ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ div๋ฅผ ํด๋ฆญํ•˜๋ฉด div -..

article thumbnail
[JavaScript] ํ˜ธ์ด์ŠคํŒ…(hoisting)์ด ๋„๋Œ€์ฒด ๋ญ˜๊นŒ? ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ฝ”๋“œ์˜ ์‹คํ–‰ ์ˆœ์„œ์™€ ์Šค์ฝ”ํ”„๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•˜๋Š” ์ค‘์š”ํ•œ ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜์ธ ํ˜ธ์ด์ŠคํŒ…(hoisting)์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ˜ธ์ด์ŠคํŒ…(hoisting)์ด๋ž€ โ“ ํ˜ธ์ด์ŠคํŒ…์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ •์—์„œ, ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜, ํด๋ž˜์Šค ์„ ์–ธ์„ ์ฝ”๋“œ์˜ ๋งจ ์œ„๋กœ '๋Œ์–ด์˜ฌ๋ฆฌ๋Š”' ๊ฒƒ๊ณผ ๊ฐ™์€ ํ˜„์ƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต ํ˜ธ์ด์ŠคํŒ…์— ๋Œ€ํ•œ ์„ค๋ช…์„ ๋ณด๋ฉด '๋Œ์–ด์˜ฌ๋ ค์ง„๋‹ค'๋ผ๊ณ  ๋Œ€๋ถ€๋ถ„ ์„ค๋ช…์ด ๋˜์–ด ์žˆ๋Š”๋ฐ ํ˜ธ์ด์ŠคํŒ…์ด ์‹ค์ œ๋กœ ์ฝ”๋“œ๋ฅผ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ตœ์ƒ๋‹จ์œผ๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„์˜ ๋‚ด๋ถ€ ๋™์ž‘ ๋ฐฉ์‹์„ ์„ค๋ช…ํ•˜๋Š” ๊ฐœ๋…์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ํ˜ธ์ด์ŠคํŒ…์€ ์‹คํ–‰ ์ปจํ…์ŠคํŠธ์˜ ์ƒ์„ฑ ๋‹จ๊ณ„์—์„œ ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ์ปจํ…์ŠคํŠธ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ํ™˜๊ฒฝ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ ๋‹จ๊ณ„์—์„œ๋Š” ๋ณ€์ˆ˜..

article thumbnail
[JavaScript] ์ด๋ฒคํŠธ ๋ฃจํ”„(Event Loop)์— ๋Œ€ํ•ด์„œ ํŒŒํ—ค์ณ ๋ด…์‹œ๋‹ค.

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ด๋ฒคํŠธ ๋ฃจํ”„(Event Loop)๋Š” ๋ฌด์—‡์ด๊ณ , ์™œ ์ค‘์š”ํ•œ ๊ฐœ๋…์ผ๊นŒ์š”? ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ(Single Thread)๋ž€? ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜์˜ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”? ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์ „์— ์Šค๋ ˆ๋“œ๋ผ๋Š” ๊ฐœ๋…์„ ๋จผ์ € ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์Šค๋ ˆ๋“œ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ž‘์€ ์š”์›๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ๋ผ๋Š” ๊ฒƒ์€ ๋ง ๊ทธ๋Œ€๋กœ ์Šค๋ ˆ๋“œ๊ฐ€ ํ•˜๋‚˜๋งŒ ์กด์žฌ, ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ž‘์€ ์š”์›์ด ํ•œ ๋ช… ๋ฐ–์— ์—†๋Š” ์–˜๊ธฐ์ž…๋‹ˆ๋‹ค. ๋ธ”๋กœํ‚น(Blocking)๊ณผ ๋…ผ๋ธ”๋กœํ‚น(Non-blocking) ์šฐ๋ฆฌ์˜ ์ž‘์€ ์š”์›์€ ํ•œ ๋ช…์ด๋ผ์„œ ๋ชจ๋“  ์ผ์„ ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์šฐ๋ฆฌ๊ฐ€ ์ปดํ“จํ„ฐ์—๊ฒŒ ๋งก๊ธด ์ผ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค๋ฉด ์–ด๋–ป..

article thumbnail
[JavaScript] ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ slice() vs splice() ์ฐจ์ด์ 

๐Ÿ’ก slice() ๋ฐฐ์—ด ๋ฉ”์„œ๋“œ slice() ๋ฉ”์„œ๋“œ๋Š” ๋ฐฐ์—ด์˜ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ๋ฐฐ์—ด์˜ ์ผ๋ถ€๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. slice() ๋ฉ”์„œ๋“œ๋Š” ์›๋ž˜ ๋ฐฐ์—ด์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ๋Œ€์‹  ์–•์€ ๋ณต์‚ฌ๋ณธ์„ ์ƒ์„ฑํ•œ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•ด์•ผ ํ•œ๋‹ค. ๊ธฐ๋ณธ ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. slice(optional start parameter, optional end parameter) ์ด ์˜ˆ์‹œ์—์„œ๋Š” ๊ณผ์ผ ๋ชฉ๋ก์„ ๋งŒ๋“ค์—ˆ๋‹ค. const fruits = ['apple', 'banana', 'mango', 'melon']; slice() ๋ฉ”์„œ๋“œ๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜ ์—†์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• โ“ slice() ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•ด ํ•ด๋‹น ๋ฐฐ์—ด์˜ ์–•์€ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. console.log(fruits.slice()); // ['apple', 'banana', 'm..

article thumbnail
[JavaScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐ˜๋ณต๋ฌธ for๋ฌธ์˜ ์ข…๋ฅ˜(for, for in, for of, forEach)

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ์ด๋ ‡๊ฒŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ for๋ฌธ์˜ ์ข…๋ฅ˜์— ๋Œ€ํ•œ ๊ธ€์„ ์ •๋ฆฌํ•˜๋Š” ์ด์œ ๋Š” ํ˜„์žฌ ๋‚˜์ค‘์— ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ค€๋น„ํ•˜๋ฉด์„œ for๋ฌธ์„ ์ž‘์„ฑํ•  ๋•Œ๊ฐ€ ๋งŽ์€๋ฐ, ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ for๋ฌธ์— ์ข…๋ฅ˜๊ฐ€ ๋‹ค์–‘ํ•˜๊ฒŒ ์žˆ๋Š” ๊ฑด ์•Œ์•˜์ง€๋งŒ ์‹ค์ œ๋กœ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ œ๊ฐ€ ์ž์ฃผ ์‚ฌ์šฉํ•œ for๋ฌธ์€ ๊ธฐ๋ณธ์ ์ธ for๋ฌธ๊ณผ forEach๋ฌธ๋งŒ ์ž์ฃผ ์‚ฌ์šฉํ•˜์˜€๊ณ , ๊ทธ ์™ธ์—๋Š” ๊ฑฐ์˜ ํ•œ ๋ฒˆ๋„ ์‚ฌ์šฉํ•ด ๋ณธ ์ ์ด ์—†์—ˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ ๋‹ค์–‘ํ•œ for๋ฌธ๊ณผ ์ ‘์ด‰ ํ•ด๋ณด๋ฉด์„œ ๊ฐ๊ฐ์˜ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๊ฐ for๋ฌธ๋งˆ๋‹ค ์žฅ์ ์ด ์žˆ๊ณ , ์„ฑ๋Šฅ์˜ ์ฐจ์ด๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฒˆ ๊ธฐํšŒ์— ํ™•์‹คํ•˜๊ฒŒ ์•Œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š” ์ •๋„์ธ์ง€์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•œ๋‹ค. ๐Ÿ’ก ์•Œ์•„๋ณผ ๊ฒƒ๋“ค (์ „ํ˜•์ ์ธ) for for in for o..

article thumbnail
[JavsScript] ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฒ„ํŠผ ํด๋ฆญ์‹œ ์˜ค๋””์˜ค(audio) ์žฌ์ƒ, ์ผœ๊ณ  ๋„๊ธฐ,๋„˜๊ธฐ๊ธฐ | audio play

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ ์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ฒ„ํŠผ ํด๋ฆญ์œผ๋กœ ์˜ค๋””์˜ค๋ฅผ ์ œ์–ดํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„ํŠผ ํด๋ฆญ์œผ๋กœ ์Œ์•…์„ ์ผœ๊ณ  ๋„๊ณ , ๋‹ค์Œ ์Œ์•…์œผ๋กœ ๋„˜๊ธฐ๋Š” ์—ฌ๋Ÿฌ ์Œ์•…์„ ์ œ์–ดํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ HTML์—๋Š” audioํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ์˜ค์ง ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋งŒ audio ์ œ์–ด๋ฅผ ํ–ˆ๋‹ค๊ฐ€ ๋ง‰ํ˜”์ง€๋งŒ, ๊ฒฐ๊ตญ ์ž˜ ํ•ด๊ฒฐ์„ ํ•ด์„œ ๋”ฐ๋กœ ์ •๋ฆฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์•„์ฃผ ๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ๋“ค์–ด์„œ, const audio = new Audio('audio_file.mp3'); audio.play(); HTML์— ๋”ฐ๋กœ ์˜ค๋””์˜ค ํƒœ๊ทธ๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ  ์ด๋Ÿฐ ์‹์œผ๋กœ audio ์ฝ”๋”ฉ์„ ํ•ด์„œ ๋กœ์ปฌ์—์„œ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๊ณ , ๊นƒํ—ˆ๋ธŒ ํผ๋ธ”๋ฆฌ์‹ฑ์„ ํ•˜์—ฌ ์‚ฌ์ดํŠธ๋กœ ๋ฐฐํฌํ•˜๋‹ˆ๊น ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๋กœ ์˜ค๋””์˜ค ์žฌ์ƒ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค..