Seize your moment! ๐Ÿ‘พ

์•ˆ๋…•ํ•˜์„ธ์š”. Eric์ž…๋‹ˆ๋‹ค. ์ œ ๋ธ”๋กœ๊ทธ์— ๋ฐฉ๋ฌธํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ป ๊ฐœ๋ฐœ๊ณต๋ถ€/JavaScript 5

[Eric's JS] JavaScript์—์„œ ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ์˜ ์ดํ•ด โ˜•๏ธ

JavaScript๋ฅผ ๋ฐฐ์šฐ๊ฑฐ๋‚˜ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์ค‘์š”ํ•˜๊ฒŒ ์ ‘ํ•˜๊ฒŒ ๋˜๋Š” ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜๋Š” ๋™๊ธฐ(synchronous)์™€ ๋น„๋™๊ธฐ(asynchronous)์˜ ์ฐจ์ด์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์ด ๋‘ ๊ฐœ๋…์˜ ์ฐจ์ด๋ฅผ ๊ธฐ๋ณธ์ ์ธ ์˜ˆ์‹œ๋ถ€ํ„ฐ ์‹ค์šฉ์ ์ธ ์˜ˆ์‹œ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์„ค๋ช…ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. 1. ๊ธฐ๋ณธ ๊ฐœ๋… ๊ตฌ๋ถ„ ๋™๊ธฐ(Synchronous) ๋น„๋™๊ธฐ(Asynchronous) ๋™์ž‘ ์›๋ฆฌ ์ฝ”๋“œ๊ฐ€ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰. ํ•œ ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋‹ค์Œ ์ž‘์—… ๋Œ€๊ธฐ. ์ฝ”๋“œ๋Š” ๋ฐ”๋กœ ๋‹ค์Œ ์ž‘์—…์œผ๋กœ ๋„˜์–ด๊ฐ€๋ฉฐ, ํŠน์ • ์ž‘์—…์˜ ์™„๋ฃŒ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์Œ. ์žฅ์  ์ฝ”๋“œ์˜ ํ๋ฆ„์ด ๋ช…ํ™•ํ•˜๋ฉฐ ์˜ˆ์ธกํ•˜๊ธฐ ์‰ฝ๋‹ค. ์—ฌ๋Ÿฌ ์ž‘์—…์„ ๋™์‹œ์— ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•˜์—ฌ ํšจ์œจ์ . ๋‹จ์  ๊ธด ์ž‘์—…์ด ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ ์ „์ฒด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ฉˆ์ถœ ์œ„ํ—˜์ด ์žˆ์Œ. ์ฝ”๋“œ์˜ ํ๋ฆ„์ด ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ๊ณ , ์ฝœ๋ฐฑ, ํ”„๋กœ๋ฏธ์Šค ๋“ฑ์˜ ๋ฉ”์ปค๋‹ˆ..

[Eric's JS] localStorage ์‚ฌ์šฉ๋ฐฉ๋ฒ• ๐Ÿค”

JavaScript์˜ localStorage ํ™œ์šฉํ•˜๊ธฐ ์—ฌ๋Ÿฌ๋ถ„ ์•ˆ๋…•ํ•˜์„ธ์š”! Eric์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์›น ํŽ˜์ด์ง€์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ์ปฌ์— ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ธ localStorage๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋กœ JSON.stringify()์™€ JSON.parse()์˜ ์‚ฌ์šฉ๋ฒ•๋„ ํ•จ๊ป˜ ๋‹ค๋ฃฐ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. 1. localStorage๋ž€? localStorage๋Š” ์›น ํŽ˜์ด์ง€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ๊ฑฐ๋‚˜ ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๊ณ ์นจํ•ด๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ฐ์ดํ„ฐ๋Š” key-value ์Œ์œผ๋กœ ์ €์žฅ๋˜๋ฉฐ, ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. 2. localStorage์— ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ธฐ localStorage์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. localStorage..

[Eric's JS] JavaScript๋กœ ๋‚˜์ด๊ณ„์‚ฐ, ๋  ๊ณ„์‚ฐํ•˜๋Š” ํ•จ์ˆ˜ ๋งŒ๋“ค๊ธฐ โญ๏ธ

์•ˆ๋…•ํ•˜์„ธ์š”, ์—ฌ๋Ÿฌ๋ถ„! ์˜ค๋Š˜์€ JavaScript๋ฅผ ์ด์šฉํ•ด ๋‚˜์ด์™€ ๋ ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๊ฐ„๋‹จํ•œ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ์‚ฌ์šฉ์ž์˜ ์ƒ๋…„์›”์ผ์„ ์ž…๋ ฅ๋ฐ›์•„ ๊ทธ์— ํ•ด๋‹นํ•˜๋Š” ๋‚˜์ด์™€ ๋ ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , ์ด๋ฅผ ์›น ํŽ˜์ด์ง€์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ €, HTML ๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 'age'์™€ 'zodiac'๋ผ๋Š” id๋ฅผ ๊ฐ€์ง„ ๋‘ ๊ฐœ์˜ div ์š”์†Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ณณ์— JavaScript๋ฅผ ํ†ตํ•ด ๊ณ„์‚ฐ๋œ ๋‚˜์ด์™€ ๋  ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ... ๋‹ค์Œ์œผ๋กœ, JavaScript ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ €, ์‚ฌ์šฉ์ž์˜ ์ƒ๋…„์›”์ผ์„ 'birthDay' ๋ณ€์ˆ˜์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. let birthDay = "2001-02-21"; ๋งŒ๋‚˜์ด ๊ณ„์‚ฐํ•˜๊ธฐ ๊ทธ๋ฆฌ๊ณ  'calculateAge'๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ์ƒ๋…„์›”์ผ์„ ์ž…๋ ฅ๋ฐ›์•„ ์˜ค๋Š˜ ๋‚ ์งœ์™€ ๋น„๊ตํ•˜์—ฌ ..

[Eric's JS] JavaScript ๋ชจ๋“  for๋ฌธ ์ดํ•ดํ•˜๊ธฐ ๐Ÿ™ƒ Enumerable๊ณผ Iterable ํ™œ์šฉ (feat. ES6)

์•ˆ๋…•ํ•˜์„ธ์š”, ์—ฌ๋Ÿฌ๋ถ„! Eric ์ž…๋‹ˆ๋‹ค! ์˜ค๋Š˜์€ JavaScript์—์„œ ์‚ฌ์šฉ๋˜๋Š” for ๋ฌธ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ , ์ด๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” enumerable๊ณผ iterable ๊ฐœ๋…์„ ํ•จ๊ป˜ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 1๏ธโƒฃ for ๋ฌธ ๋จผ์ € ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ for ๋ฌธ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด for ๋ฌธ์€ ์ดˆ๊ธฐ์‹, ์กฐ๊ฑด์‹, ์ฆ๊ฐ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์–ด์ง„ ๋ฒ”์œ„์˜ ๋ฐ˜๋ณต์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์‹œ: for (let i = 0; i < 5; i++) { console.log(i); } 2๏ธโƒฃ for...in ๋ฌธ for...in ๋ฌธ์€ ๊ฐ์ฒด์˜ ๋ชจ๋“  ์—ด๊ฑฐ ๊ฐ€๋Šฅํ•œ(enumerable) ์†์„ฑ์— ๋Œ€ํ•ด ๋ฐ˜๋ณต ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ, ๋ฐฐ์—ด์ด๋‚˜ ๋‹ค๋ฅธ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ(iterable) ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ: const person = { name..

[Eric's JS] ์ด๋ฒคํŠธ ๋ฃจํ”„(Event Loop) ๋ž€? ๐Ÿ”„ JavaScript, ๋ธŒ๋ผ์šฐ์ €

์•ˆ๋…•ํ•˜์„ธ์š”! Eric์ž…๋‹ˆ๋‹ค ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ธ ์ด๋ฒคํŠธ ๋ฃจํ”„(Event Loop)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ ๋ฃจํ”„๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์‹œ์„ฑ์„ ์œ ์ง€ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ๋น„๋™๊ธฐ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์ด๋ฒคํŠธ ๋ฃจํ”„๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์‹œ์ฃ ! โœ… ์ด๋ฒคํŠธ ๋ฃจํ”„(Event Loop)๋ž€? ์ด๋ฒคํŠธ ๋ฃจํ”„๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋น„๋™๊ธฐ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๋ฌดํ•œ ๋ฃจํ”„์ด๋‹ค. JavaScript๋Š” ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ ์–ธ์–ด์ด๋ฏ€๋กœ, ์ด๋ฒคํŠธ ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์‹œ์„ฑ์„ ์œ ์ง€ํ•˜๋ฉฐ, ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ”„ ์ด๋ฒคํŠธ ๋ฃจํ”„์˜ ์ž‘๋™ ์›๋ฆฌ ์˜ˆ์‹œ) ํ•˜๋‹จ์ฒ˜๋Ÿผ JavaScript ์ฝ”๋“œ๊ฐ€ ์ž‘์„ฑ๋˜์–ด์žˆ์œผ๋ฉด, ์–ด๋– ํ•œ ์ˆœ์„œ๋Œ€๋กœ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ๊นŒ? console.log(..