2023. 10. 12. 19:39ใ0. TiL ( Today I Learned )
Q1. Hoisting์ด๋ ๋ฌด์์ธ์ง ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
๋ณ์์ ํจ์ ์ ์ธ์ด ๊ทธ๋ค์ ์ค์ฝํ ์๋จ์ผ๋ก ๋์ด์ฌ๋ ค์ง๋ ๋์์ ์๋ฏธํฉ๋๋ค. ์ด๋ฌํ ๋์์ ์คํ ์ปจํ ์คํธ์ ์์ฑ ๋จ๊ณ์์ ๋ฐ์ํ๋ค.
(๋๋ ์ฒ์, ํธ์คํ ์ผ๋ก ๊ณต๋ถํด๋ฒ๋ ธ๋ค... ํธ์ด์คํ ์ด๋ผ๋๊ฑธ ๋ค์ ํ์ธํ๊ณ , ์๋์ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ์กฐํด์ ๊ณต๋ถํ๋ค.)
https://tecoble.techcourse.co.kr/post/2021-04-25-hoisting/
ํธ์ด์คํ ์ ๋ํ ์คํด์ ์ง์ค
…
tecoble.techcourse.co.kr
Q2. async/await ์ด๋ ๋ฌด์์ธ์ง ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
async์ await๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ํจํด ์ค ๊ฐ์ฅ ์ต๊ทผ์ ๋์จ ๋ฌธ๋ฒ์
๋๋ค. ๊ธฐ์กด์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์์ธ ์ฝ๋ฐฑ ํจ์์ ํ๋ก๋ฏธ์ค์ ๋จ์ ์ ๋ณด์ํ๊ณ ๊ฐ๋ฐ์๊ฐ ์ฝ๊ธฐ ์ข์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๊ฒ ๋์๋ค.
1) async ํค์๋๋ function ์์ ์ฌ์ฉํ๋ค. function ์์ async๋ฅผ ๋ถ์ด๋ฉด ํด๋น ํจ์๋ ํญ์ ํ๋ผ๋ฏธ์ค๋ฅผ ๋ฐํํ๋ค. ํ๋ผ๋ฏธ์ค๊ฐ ์๋ ๊ฐ์ ๋ฐํํ๋๋ผ๋ ์ดํ ์ํ์ ํ๋ผ๋ฏธ์ค(resolved promise)๋ก ๊ฐ์ ๊ฐ์ธ ์ดํ๋ ํ๋ผ๋ฏธ์ค๊ฐ ๋ฐํ๋๋๋ก ํ๋ค.
2) await: await ํค์๋๋ async ํจ์ ๋ด์์๋ง ์ฌ์ฉ๋ ์ ์๋ค. await๋ Promise๊ฐ ์๋ฃ๋ ๋๊น์ง ํจ์์ ์คํ์ ์ผ์ ์ค๋จ์ํต๋๋ค. Promise๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋๋ฉด ๊ทธ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํํ๊ณ , ์คํจํ๋ฉด ์๋ฌ๋ฅผ ๋ฐ์์ํจ๋ค.
์ฐธ๊ณ URL : https://joshua1988.github.io/web-development/javascript/js-async-await/
์๋ฐ์คํฌ๋ฆฝํธ async์ await
(์ค๊ธ) ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์๋ฅผ ์ํ async, await ์ฌ์ฉ๋ฒ ์ค๋ช . ์ฝ๊ฒ ์์๋ณด๋ ์๋ฐ์คํฌ๋ฆฝํธ async await ๊ฐ๋ , ์ฌ์ฉ๋ฒ, ์์ ์ฝ๋, ์์ธ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ
joshua1988.github.io
๋๊ธฐ, ๋น๋๊ธฐ๋? (+Promise, async/await ๊ฐ๋ )
1. ๋๊ธฐ vs. ๋น๋๊ธฐ ์ฐ์ ์ฐจ์ด์ ๋ถํฐ ์ค๋ช ํ์๋ฉด, ๋๊ธฐ๋ '์ง๋ ฌ์ '์ผ๋ก ์๋ํ๋ ๋ฐฉ์์ด๊ณ ๋น๋๊ธฐ๋ '๋ณ๋ ฌ์ '์ผ๋ก ์๋ํ๋ ๋ฐฉ์์ด๋ค. ์ฆ, ๋น๋๊ธฐ๋ ํน์ ์ฝ๋๊ฐ ๋๋ ๋ ๊น์ง ์ฝ๋์ ์คํ์ ๋ฉ์ถ
velog.io
Q3. Arrow Function ์ด๋ ๋ฌด์์ธ์ง ์ค๋ช ํด์ฃผ์ค ์ ์์๊น์?
ES6 ๋ฌธ๋ฒ ์ดํ๋ถํฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ํจ์๋ฅผ ๋ง๋ค ์ ์๋ ๋ฌธ๋ฒ์ด ์๋กญ๊ฒ ํ๋ ๋ฑ์ฅํ๋ค.
arrow function ์ด๋ผ๋ ๋ฌธ๋ฒ์ธ๋ฐ ์ด๊ฑธ ์ด์ฉํ๋ฉด ํจ์๋ฅผ ๋ง๋ค ์ ์๋ค.
function์ด๋ผ๋ ๊ธธ๊ณ ๋ณต์กํ ํค์๋ ๋์ ์
=> ์ด๋ฐ ์์ ํ์ดํ๋ฅผ ์ฌ์ฉํด์ ํจ์๋ฅผ ๋ง๋ค์ด๋ด๋ ์ ๋ฌธ์ด๋ค.
1) ํจ์ ๋ณธ์ฐ์ ๊ธฐ๋ฅ์ ์์ฃผ ์ ํํํ๋ ๋ฌธ๋ฒ์ด๋ค.
๋ก๊ทธ๋๋ฐํ ๋ function ๋ฌธ๋ฒ์ ์ ์ฌ์ฉํ ๊น?
1. ์ฌ๋ฌ๊ฐ์ง ๊ธฐ๋ฅ์ ํ๋ ์ฝ๋๋ฅผ ํ ๋จ์ด๋ก ๋ฌถ๊ณ ์ถ์ ๋ (๊ทธ๋ฆฌ๊ณ ๋์ค์ ์ฌ์ฌ์ฉํ ๋)
2. ์
์ถ๋ ฅ๊ธฐ๋ฅ์ ๋ง๋ค ๋
์ด๋ด ๋ ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
arrow function์ ์ฌ์ฉํ๋ฉด ํจ์ ๋ณธ์ฐ์ ์
์ถ๋ ฅ๊ธฐ๋ฅ์ ์์ฃผ ์ง๊ด์ ์ผ๋ก ์ ํํํด์ค๋ค.
arrow function์ ์ฐ์๋ฉด ์
์ถ๋ ฅ๊ธฐ๋ฅ์ด ์ฝ๊ณ ์์๊ฒ ํํ๋๋ค.
var ๋๋ฐฐ๋ง๋ค๊ธฐ = (x) => { return x * 2 }
console.log( ๋๋ฐฐ๋ง๋ค๊ธฐ(4) );
console.log( ๋๋ฐฐ๋ง๋ค๊ธฐ(8) );
์ซ์๋ฅผ ๋ฃ์ผ๋ฉด 2๋ฐฐ๋ฅผ ํด์ฃผ๋ ํจ์๋ฅผ ๋ง๋ค๋ฉด, ๋งค์ฐ ์ดํดํ๊ธฐ ์ฌ์์ง๋ค.
2) ์๊ดํธ ์๋ต์ด ๊ฐ๋ฅํ๋ค.
ํ๋ผ๋ฏธํฐ๊ฐ ํ๋๋ผ๋ฉด ์๊ดํธ ์๋ต์ด ๊ฐ๋ฅํ๋ค.
var ๋๋ฐฐ๋ง๋ค๊ธฐ = x => { return x * 2 }
console.log( ๋๋ฐฐ๋ง๋ค๊ธฐ(4) );
console.log( ๋๋ฐฐ๋ง๋ค๊ธฐ(8) );
x์ ์๊ดํธ๋ฅผ ์๋ตํด๋ ๋๋ค.
3) ์ค๊ดํธ ์๋ต์ด ๊ฐ๋ฅํ๋ค.
์ค๊ดํธ ์์ return ํ์ค ๋ฟ์ด๋ผ๋ฉด ์ค๊ดํธ์ return๋ ์๋ต๊ฐ๋ฅํ๋ค.
var ๋๋ฐฐ๋ง๋ค๊ธฐ = x => x * 2 ;
console.log( ๋๋ฐฐ๋ง๋ค๊ธฐ(4) );
console.log( ๋๋ฐฐ๋ง๋ค๊ธฐ(8) );
๊ฒฐ๋ก : x๊ฐ ์ด๋ป๊ฒ ๋ณํ๋ ํจ์์ธ์ง ์
์ถ๋ ฅ๊ธฐ๋ฅ์ด ๋ฐ๋ก ํ๋์ ๋ค์ด์จ๋ค.
4) this ๋ฐ์ธ๋ฉ : arrow function์ ์ด๋์ ์ฐ๋ ๊ฐ์ ๋ด๋ถ์ this ๊ฐ์ ๋ณํ์ํค์ง ์๋๋ค.
๊ทธ๋ฌ๋๊น ๋ฐ๊นฅ์ ์๋ this์ ์๋ฏธ๋ฅผ ๊ทธ๋๋ก ๋ด๋ถ์์๋ ์ฌ์ฉํ๋ ํจ์๊ฐ ๋ฐ๋ก arrow function ์ด๋ผ๋ ํจ์์
๋๋ค.
(*ํญ์ ์ฅ์ ์ ์๋๋ค. ๋ด๊ฐ ์์ธกํ๋ this๊ฐ๊ณผ ๋ฌ๋ผ์ง ์๋ ์์ผ๋ ๋จ์ ์ด ๋ ์ ์๋ค. )
์ฐธ๊ณ URL : https://codingapple.com/unit/es6-3-arrow-function-why/
Arrow function์ function์ ๋์ฒดํ๋ ์ ๋ฌธ๋ฒ์ด ์๋ - ์ฝ๋ฉ์ ํ ์จ๋ผ์ธ ๊ฐ์ข
0:00 Arrow function ๋ฌธ๋ฒ 1:17 ์ ์ฐ๋์ง ์ฅ์ 3๊ฐ ์ ๋ฆฌ 4:28 Arrow function ์ค์ํ ์ฌ์ฉ ์์ & this๊ฐ์ ๋ํ์ฌ ES6 ๋ฌธ๋ฒ ์ดํ๋ถํฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ํจ์๋ฅผ ๋ง๋ค ์ ์๋ ๋ฌธ๋ฒ์ด ์๋กญ๊ฒ ํ๋ ๋ฑ์ฅํ์ต๋
codingapple.com

์ค๋๋ถํฐ ๊ธฐ์ ๋ฉด์ ๋๋น๋ฅผ ์งํํ๋ค.
ํ๋ฃจ์ 2๊ฐ์ ๋ ๋ด๊ฐ ์์๋ณธ ๋ด์ฉ๋ค์ ์ ์ถํ๊ณ ,
์ค๋์ ๋ด๊ฐ ๋ฏธ๋ฆฌ ๋ด๊ฐ ๊ธฐ์กด์ ์์๋ณธ ๋ด์ฉ๋ค๋ก ๋กคํ๋ ์๋ ์งํํฌ๋ณด์๋๋ฐ, ๊ฑฑ์ ์ด๋ค..!
๋ ๋์ค์.. ๊ธฐ์ ๋ฉด์ ์ ๋ณผ์์๊ฒ ์ง?
๋ฒ์จ ๊ฑฑ์ ์ด๋ค!
์์ง ์ ๋ฌธ์ง์์ด ๋ถ์กฑํด์ ๊ผฌ๋ฆฌ์ง๋ฌธ ๋์ค๋ฉด ๊ธด์ฅ๋ถํฐ ๋๋ค!
๋ง์ด ๋ฐฐ์์ผ๊ฒ ๋ค!