[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ์ฝœ๋ฐฑ, Promise, async/await
ยท
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ •์„ ๐ŸŸก
โœจ ์„œ๋ก function first() { let value; setTimeout(() => { value = {name: 'max', age: 18}; }, 3000); return value; } console.log(first()); // undefined๋ณ€์ˆ˜ value์— ๊ฐ์ฒด๋ฅผ ํ• ๋‹นํ•˜๊ธฐ ์ „์— ๋ฐ˜ํ™˜ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, first() ํ˜ธ์ถœ๋ฌธ์œผ๋กœ ๋ฐ˜ํ™˜๋œ ๊ฐ’์€ undefinedfirst(function (error, value) { if(error) { } else { console.log(value); }})foo? ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์ฝœ๋ฐฑํ•จ์ˆ˜ ๋„˜๊ฒจ์ฃผ๊ณ  ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚œ ํ›„ ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ •์ƒ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ด์ฝœ๋ฐฑํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ์ ์˜ ๊ถŒํ•œ์ด ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ œ์–ด๊ถŒ์„ ๋„˜๊ฒจ๋ฐ›์€ ์ฝ”๋“œ์—๊ฒŒ ์žˆ..
[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] callback ์ •๋ฆฌ โœจ
ยท
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ •์„ ๐ŸŸก
์ฐธ๊ณ ์ž๋ฃŒ: ์ธํ”„๋Ÿฐ-์ฝ”์–ด์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ•™์Šต ํŽ˜์ด์ง€ www.inflearn.com โญ๏ธ ์ฝœ๋ฐฑ(callback)- 'ํšŒ์‹ ํ•˜๋‹ค/๋‹ต์‹ ํ•˜๋‹ค'- ์ œ์–ด๊ถŒ์„ ๋„˜๊ฒจ์ฃผ๋Š” ํ•จ์ˆ˜ ๐Ÿ“š ์ œ์–ด๊ถŒ ์œ„์ž„ํ•˜๋Š” ๊ฒฝ์šฐ ์„ธ ๊ฐ€์ง€- ์‹คํ–‰์‹œ์ - ๋งค๊ฐœ๋ณ€์ˆ˜- this ๐Ÿ“š ์ œ์–ด๊ถŒ ์œ„์ž„- ์‹คํ–‰์‹œ์ setInterval(function(){ console.log('1์ดˆ๋งˆ๋‹ค ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค')}, 1000);- setInterval์€ ์ผ์ • ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ์œผ๋กœ ํ•œ๋ฒˆ์”ฉ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰์‹œ์ผœ์ฃผ๋Š” ํ•จ์ˆ˜- ์ฃผ๊ธฐํ•จ์ˆ˜ ํ˜ธ์ถœ(์ธ์ž1: ์ฝœ๋ฐฑํ•จ์ˆ˜, ์ธ์ž2: ์ฃผ๊ธฐ); = setInterval(callback, milliseconds)- ์ฝœ๋ฐฑํ•จ์ˆ˜๊ฐ€ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๋Š” ์‹œ์ ์— setInterval์—๊ฒŒ ์ œ์–ด๊ถŒ์„ ๋„˜๊ฒจ์คŒ์œผ๋กœ์จ ํ•จ์ˆ˜๊ฐ€ ์ผ์ •์‹œ๊ฐ„์ด ์ง€๋‚œ ์‹œ์ ์— ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋จ- ๋งŒ์•ฝ setInterv..
[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] this ์ •๋ฆฌ
ยท
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ •์„ ๐ŸŸก
์ฐธ๊ณ ์ž๋ฃŒ: ์ธํ”„๋Ÿฐ ์ฝ”์–ด์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(ํด๋ž˜์Šค ํŽธ)์ฐธ๊ณ ์ž๋ฃŒ 2์ฐธ๊ณ ์ž๋ฃŒ3 โญ๏ธ this- ์ž์‹ ์ด ์†ํ•œ ๊ฐ์ฒด ๋˜๋Š” ์ž์‹ ์ด ์ƒ์„ฑํ•  ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ž๊ธฐ ์ฐธ์กฐ ๋ณ€์ˆ˜- this๋ฅผ ํ†ตํ•ด ์ž์‹ ์ด ์†ํ•œ ๊ฐ์ฒด ๋˜๋Š” ์ž์‹ ์ด ์ƒ์„ฑํ•  ์ธ์Šคํ„ด์Šค์˜ ํ”„๋กœํผํ‹ฐ/๋ฉ”์„œ๋“œ๋ฅผ ์ฐธ์กฐ- ์•”๋ฌต์ ์œผ๋กœ ์ƒ์„ฑ- ์ฝ”๋“œ ์–ด๋””์—์„œ๋“  ์ฐธ์กฐ ๊ฐ€๋Šฅ- ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋‚˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•œ ์ž๊ธฐ ์ฐธ์กฐ ๋ณ€์ˆ˜์ด๋ฏ€๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ์ฒด์˜ ๋ฉ”์„œ๋“œ ๋˜๋Š” ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ์Œ- ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์ธ์ž์™€ this๊ฐ€ ์•”๋ฌต์ ์œผ๋กœ ํ•จ์ˆ˜ ๋‚ด๋ถ€์— ์ „๋‹ฌ- ์ธ์ž๋ฅผ ์ง€์—ญ ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, this๋„ ์ง€์—ญ๋ณ€์ˆ˜์ฒ˜๋Ÿผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ- this๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’, ์ฆ‰, this ๋ฐ”์ธ๋”ฉ์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ฐฉ์‹์— ์˜ํ•ด ๋™์ ์œผ๋กœ ๊ฒฐ์ •- ํฌ๊ฒŒ ์ „์—ญ์—์„œ ์‚ฌ์šฉํ•  ๋•Œ์™€ ํ•จ์ˆ˜ ์•ˆ์—์„œ ์‚ฌ์šฉํ•  ๋•Œ๋กœ ..