var์ let์ ์ฃผ์ ์ฐจ์ด์ ์ ๋ํด์ ์์๋ด
์๋ค ! ๐์ค์ฝํ(Scope)var: ํจ์ ์ค์ฝํ๋ฅผ ๊ฐ์ง๋๋ค. ์ฆ, ํจ์ ๋ด์์๋ง ์ ํจํ๋ฉฐ, ํจ์ ์ธ๋ถ์์๋ ์ ๊ทผํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ํจ์ ๋ด๋ถ์์ ์ ์ธ๋ ๊ฒฝ์ฐ, ๋ธ๋ก({}) ๋ด์์ ์ ์ธ๋ ๊ฒ๊ณผ ์๊ด์์ด ํจ์ ์ ์ฒด์์ ์ ๊ทผ ๊ฐ๋ฅํฉ๋๋ค.let: ๋ธ๋ก ์ค์ฝํ๋ฅผ ๊ฐ์ง๋๋ค. ์ฆ, ์ค๊ดํธ({})๋ก ๋ฌถ์ธ ๋ธ๋ก ๋ด์์๋ง ์ ํจํ๋ฉฐ, ๋ธ๋ก ์ธ๋ถ์์๋ ์ ๊ทผํ ์ ์์ต๋๋ค.๋ณ์ ํธ์ด์คํ
(Variable Hoisting)var: ์ ์ธ์ด ํธ์ด์คํ
(๋ณ์ ์ ์ธ์ด ์ฝ๋์ ์ต์๋จ์ผ๋ก ๋์ด์ฌ๋ ค์ง๋ ํ์)๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ธฐํ๋ ํธ์ด์คํ
๋์ง ์์ undefined ๊ฐ์ ๋ฐํํ ์ ์์ต๋๋ค.let: ์ ์ธ์ ํธ์ด์คํ
๋์ง๋ง, ์ด๊ธฐํ๊ฐ ํธ์ด์คํ
๋์ง ์์์ ์ด๊ธฐํ ์ ์ ๊ทผํ๋ฉด ReferenceEr..
๐ then()์์ ๋น๋๊ธฐ ์์
์ด ์๋ฃ๋๋ฉด ๋ฑ๋ก๋ ์ฝ๋ฐฑ์ ์คํํด์ค๋ค.then()์ Promise๋ฅผ ๋ฆฌํดํ๋ค1. fetch ํจ์๊ฐ url๋ก request๋ฅผ ๋ณด๋ด๋ฉด Promise Pending ์ํ๋ฅผ ๋ฆฌํด.2. Promise๊ฐ Fulfilled ์ํ๊ฐ ๋๋ฉด Promise์ ๊ฒฐ๊ณผ๊ฐ์ ์ฝ๋ฐฑ์ ์ฒซ๋ฒ์งธ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌํ๋ค.3. ๋ง์ฝ, ์ฝ๋ฐฑ์ด Promise๋ฅผ ๋ฆฌํดํ๋ฉด then ๋ฉ์๋๊ฐ ๋ฆฌํดํ Promise๋ ๋์ผํ ์ํ์ ๊ฒฐ๊ณผ ๊ฐ์ ๊ฐ๊ฒ ๋๋ค.4. ์ฝ๋ฐฑ์ด Promise๊ฐ ์๋ ํ๋ฒํ ๊ฐ์ ๋ฆฌํดํ๋ฉด, then ๋ฉ์๋๊ฐ ๋ฆฌํดํ Promise๋ FulFilled ์ํ๊ฐ ๋๊ณ ๋ฆฌํด๊ฐ์ ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ๊ฐ๊ฒ๋๋ค. then() ๋ฉ์๋์ ํ๋ฆํ ์ค๋ก ์ ๋ฆฌPromise๊ฐ Fulfilled ์ํ๊ฐ ๋๋ฉด(๋น๋๊ธฐ ์์
์ด ๋๋๋ฉด) ๋ค์ ์..
์ฝ๋ฐฑ(Callback)์ด๋?์ด๋ค ํจ์์ ์๊ท๋จผํธ๋ก ์ ๋ฌ๋๋ ํจ์๋ฅผ ์ฝ๋ฐฑ ๋๋ ์ฝ๋ฐฑ ํจ์๋ผ๊ณ ๋ถ๋ฆ
๋๋ค.์๋ฐ์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ค์ํ ๋น๋๊ธฐ ํจ์๋ฅผ ์ ๊ณตํด ์ค๋ค.์ ๊ณต๋๋ ๋น๋๊ธฐ ํจ์์ ์ฝ๋ฐฑ์ ๋๊ฒจ์ฃผ๊ธฐ๋ง ํ๋ฉด ๋น๋๊ธฐ ํ๋ก๊ทธ๋จ์ ๊ตฌํํ ์ ์๋ค.
๐ฉ๐ป๐ป await ํจ์Promise์ ์ฑ๊ณต ๊ฒฐ๊ณผ ๊ฐ์ ๋ฐ์์ค๋ ค๋ฉด ํจ์ ์์ await์ ์ฌ์ฉํ๋คasync์ ํจ์๋, ํ์ผ module์ ์ต์์ ๋ ๋ฒจ์์๋ง ์ฌ์ฉํ ์ ์๋ค. ์ฌ๊ธฐ์ module์ ES6 ๋ชจ๋์ ์๋ฏธ๐ฉ๐ป๐ป await์ ์ญํ fetchํจ์๋ Promise ๊ฐ์ฒด๋ฅผ ๋ฆฌํดํ๋ค.fetch ์์ await๋ฌธ์ด ์์ผ๋ฉด Promise๊ฐ Fulfilled ์ํ๊ฐ ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฐ๋ค.Promise๋ ์ธ ๊ฐ์ง ์ํ๋ฅผ ๊ฐ๋๋ค. Pending (๋ฏธ๊ฒฐ์ ) : ๋น๋๊ธฐ ์์
์ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ ๋ Fulfilled (์ฑ๊ณต) : ๋น๋๊ธฐ ์์
์ ์ฑ๊ณต์ ์ผ๋ก ๋๋ฌ์ ๋ Rejected (์คํจ) : ๋น๋๊ธฐ ์์
์ด ์คํจํ์ ๋๋น๋๊ธฐ ์์
์ด ์๋ฃ๋๋ฉด Promise๊ฐ ์์
๊ฒฐ๊ณผ๋ฅผ ์๋ ค์ค๋ค. ์ด๋, await๋ก ํ์ฉํ๋ค.๐ ..
๐ก fetch๋ ?Promise ๊ฐ์ฒด๋ฅผ ๋ฆฌํดํ๋คfetch()๋ console.log()๋ณด๋ค ํจ์ฌ ์ค๋ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ printEmployees() ํธ์ถ ์๋ ๋ ๋ง์ console.log()๋ฌธ์ด ์์์ด๋ ๊ทธ ์ถ๋ ฅ๋ฌธ๋ค์ด ๋ชจ๋ ์คํ๋๊ณ ๋์ function() ์์ผ๋ก ๋์๊ฐ๋๋ค.๐ก Promise ๋ ?๋น๋๊ธฐ ์์
์ด ์๋ฃ๋๋ฉด ๊ฐ์ ์๋ ค์ฃผ๋ ๊ฐ์ฒด์์
์ด ์๋ฃ๋๋ฉด ๊ฐ์ ์๋ ค์ค ๊ฒ์ '์ฝ์'ํจfetch๋ ์ค๋ ๊ฑธ๋ฆฌ๋ ์์
์ด๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐ๋ก ๋๋ ค์ค ์๋ ์์ผ๋๊น, ์ผ๋จ Promise๋ฅผ ๋๋ ค์ฃผ๊ณ ๋์ค์ ์์
์ด ์๋ฃ๋๋ฉด ๊ฒฐ๊ณผ๊ฐ์ Promise์ ์ฑ์ ๋ฃ์ด์ค Promise๊ฐ ๋์ค๊ธฐ ์ ์ฝ๋ฐฑ ๊ธฐ๋ฐgetEmployees((response) => { json((response, (data)) => { cons..
โ
|| ์ฐ์ฐ์|| ์ฐ์ฐ์๋ ์ข์ธก์ ๊ฐ์ด falsy ๊ฐ(0, "", false, null, undefined, NaN)์ผ ๋ ์ฐ์ธก์ ๊ฐ์ ๋ฐํํฉ๋๋ค. ๋ฐ๋ผ์ user๊ฐ ๋น ๋ฌธ์์ด("")์ด๋ฏ๋ก currentUser1์ "Anonymous"๊ฐ ๋ฉ๋๋ค. โ
?? ์ฐ์ฐ์?? ์ฐ์ฐ์๋ ์ข์ธก์ ๊ฐ์ด null ๋๋ undefined์ผ ๋๋ง ์ฐ์ธก์ ๊ฐ์ ๋ฐํํฉ๋๋ค.