ํฐ์คํ ๋ฆฌ ๋ทฐ
ํธ์ด์คํ (Hoisting)์ด๋?
์๋ฐ์คํฌ๋ฆฝํธ ์์ง(Interpreter)์ด ์ฝ๋๋ฅผ ์คํํ๊ธฐ ์ ,
๋ณ์, ํจ์, ํด๋์ค์ ์ ์ธ๋ฌธ์ ์๋ก ๋์ด ์ฌ๋ฆฌ๋ ๊ฒ์ ๋งํ๋ค.
๋ณ์์ ์ ์ธ๊ณผ ์ด๊ธฐํ๋ฅผ ๋ถ๋ฆฌํ ํ, ์ ์ธ๋ง ์ฝ๋์ ์ต์๋จ์ผ๋ก ์ฎ๊ธด๋ค.
ํจ์ ํธ์ด์คํ
๋ฐ๋ผ์ ํจ์์ ์ ์ธ๋ฌธ์ ์ ์ธ ์ด์ ์๋ ํธ์ถ์ด ๊ฐ๋ฅํ๋ค.
print();
function print() {
console.log('Good Morning๐ค๏ธ');
}
๋ณ์์ ํด๋์ค ํธ์ด์คํ
๋ณ์(let, const)์ ํด๋์ค๋ ์ ์ธ๋ง ํธ์ด์คํ ์ด ๋๊ณ , ์ด๊ธฐํ๋ ํธ์ด์คํ ์ด ๋์ง ์๋๋ค.
๋ฐ๋ผ์ ์๋์ ๊ฐ์ด ์ด๊ธฐํ ์ ์ ๋ณ์์ ์ ๊ทผํ๋ฉด ์ปดํ์ผ(๋น๋) ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
error "Cannot access (๋ณ์๋ช ๋๋ ํด๋์ค๋ช ) before initialization" = '์์ง ๋ณ์(๋๋ ํด๋์ค)๊ฐ ์ด๊ธฐํ๊ฐ ๋์ง ์์์ด'
console.log(hi); // ์๋ฌ ๋ฐ์
let hi = 'hi';
const car = new Car(); // ์๋ฌ ๋ฐ์
class Car {}
์๋ ์ฝ๋๋ ์ญ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
๋ธ๋ก ์์์ x๊ฐ ํธ์ด์คํ ๋์ด ์กด์ฌํ๊ธด ํ์ง๋ง,
๋ธ๋ก ์์ ์๋ ๊ทธ x๊ฐ ์ด๊ธฐํ๊ฐ ๋์ง ์์์ผ๋ฏ๋ก 'Cannot access 'x' before initializion' ์๋ฌํ๋ค.
let x = 1;
{
console.log(x); // ์๋ฌ ๋ฐ์
let x = 2;
}
- Total
- Today
- Yesterday
- ์ ๋ ฌ
- leetcode
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- JavaScript
- Python
- ์๋ฃ๊ตฌ์กฐ
- Context API
- github
- ๋ฆฌ์กํธ
- React Query
- ๋ธ๋ผ์ฐ์
- mdn
- ์๋ฌ
- react
- ๊ทธ๋ํ
- ํจ์
- BOJ
- useState
- ์๋ฐ์คํฌ๋ฆฝํธ
- error
- ํ์ด์ฌ
- git
- Browser
- DB
- ์๊ณ ๋ฆฌ์ฆ
- state
- DOM
- zustand
- CSS
- Component
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |