์ปดํจํฐ์ ๋ณ์์ ์ ์ฒด๋ฅผ ์๋ฆฌ๊ณ , ๊ณต๊ฐ์ ํ๋ณดํ๊ณ , ์ํ๋ ๊ฐ์ ์ฃผ๋ ๊ณผ์ ์ด ๋ณ์ ์ ์ธ, ์ด๊ธฐํ, ํ ๋น ๊ณผ์ ์ ๋๋ค.
์ ์ธ
- ์ ์ธ ๋จ๊ณ์์๋ const, let, var ์ค ํ์ํ ์ ์ธ ํค์๋๋ฅผ ์ฌ์ฉ ํฉ๋๋ค.
- ๋ณ์๋ช ์ ์คํ ์ปจํ ์คํธ์ ๋ณ์ ๊ฐ์ฒด์ ๋ฑ๋กํ์ฌ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ณ์์ ์กด์ฌ๋ฅผ ์๋ฆฝ๋๋ค.
์ด๊ธฐํ
- ์ ์ธ ํค์๋๋ฅผ ํตํด ์ด๋ฆ์ด ์ ํด์ง ๋ณ์์ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋ณดํ๊ณ , ์๋ฌต์ ์ผ๋ก undefined ๋ฅผ ํ ๋น ํฉ๋๋ค.
- ๋ํ ์ ์ธ ํค์๋์ ๋ฐ๋ผ์ ๊ณผ์ ์ด ๋ฌ๋ผ์ง๋๋ค.
var
- ์ ์ธ๊ณผ ์ด๊ธฐํ๊ฐ ํจ๊ป ์ผ์ด๋๊ธฐ ๋๋ฌธ์, ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ๊ณ ์๋ ๋ณ์๋ก ๊ฐ์ฃผ๋์ด ์ ์ธ๋ฌธ ์์์๋ ํด๋น ๋ณ์๋ ์ฐธ์กฐ๊ฐ ๊ฐ๋ฅํ๊ฒ ๋ฉ๋๋ค.
- var ๋ก ์ ์ธํ ๋ณ์๋ ์คํ ์ปจํ
์คํธ ์ต์์๋ก ์ด๋ํ๊ฒ ๋๊ณ ,
var ํค์๋๋ก ์ ์ธํ ๋ณ์๊ฐ ํธ์ด์คํ ์ด ์ผ์ด๋๋ ๊ณผ์ ์ด๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค.
let
- ์คํ ์ปจํ
์คํธ์ ๋ณ์๋ฅผ ๋ฑ๋กํ๋ ์ ์ธ ๋จ๊ณ๋ฅผ ๊ฑฐ์น๊ณ ๋ ํ
ํด๋น ๊ณผ์ ์์๋ ์๋ฌด๋ฐ ์์ ์ด ์ผ์ด๋์ง ์์ต๋๋ค. - ์ ์ธ๊ณผ ์ด๊ธฐํ ๋จ๊ณ๊ฐ ๋๋์ด์ง๋๋ค.
- ์ด๊ธฐ ๊ฐ์ ์ง์ ํ์ง ์๋ ๋ค๋ฉด, ๋ณ์๋ ๊ฐ์ด ํ ๋น๋ ๋๊น์ง undefined ๊ฐ์ ๊ฐ์ง๊ฒ ๋ฉ๋๋ค.
- ์ด๊ธฐํ ๋จ๊ณ๋ ๋ฐ ํ์ ๊ณผ์ ์์ ๋ฐ์ ํฉ๋๋ค.
- let byeonSu = 10; // ์ค์ ์ฝ๋
// ์ค์ ์ฝ๋๋ฅผ ๋ฐํ์ ๊ณผ์ ์์ ์ผ๋ก ์ดํด๋ณธ๋ค๋ฉด,
let byeonSu // ์ด๊ธฐํ (1) = undefined
byeonSu = 10; // ํ ๋น (2) = ํด๋น ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ์ ๋ณ์์ ์ ์ฅ
- var ์ let ๊ณผ ๋ฌ๋ฆฌ ๋ณ์์ ์ด๊ธฐ ๊ฐ์ ์ง์ ํ์ง ์์ ์ฑ ์ ์ธํ๋ฉด ๊ตฌ๋ฌธ์๋ฌ(SyntaxError)๊ฐ ๋น๋๋ค.
- const ๋ก ๋ณ์๋ฅผ ์ ์ธํ ๋๋ ๋ฐ๋์ ์ด๊ธฐ ๊ฐ์ ์ง์ ํด์ค์ผ ํฉ๋๋ค.
- const apple; // SyntaxError const a, b, c; // SyntaxError const i = 0; j = 1; k = 2;
ํ ๋น
- = ๋ฅผ ํตํด ์ด๋ฃจ์ด์ง๋ฉฐ ๋ชจ๋ ์ ์ธ ํค์๋์ ํ ๋น์ ๋ฐ ํ์ ๊ณผ์ ์์ ์ด๋ฃจ์ด์ง๋๋ค.
์ ๋ฆฌ
- var ๋ ์คํ ์ปจํ ์คํธ Execution phase(์คํ ๋จ๊ณ)์์ ์ ์ธ๊ณผ ์ด๊ธฐํ ๋จ๊ณ๊ฐ ์ด๋ฃจ์ด์ง๊ณ , ๋ฐ ํ์ ๊ณผ์ ์์ ํ ๋น์ด ์ด๋ฃจ์ด์ง๋๋ค.
- let, const ์ ์คํ ์ปจํ
์คํธ Execution phase(์คํ ๋จ๊ณ)์์ ์ ์ธ ๋จ๊ณ๋ง ์ด๋ฃจ์ด์ง๊ณ ,
๋ฐ ํ์ ๊ณผ์ ์์ ์ด๊ธฐํ ๋จ๊ณ ํ ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋ณดํ์ฌ ํ ๋นํ ๊ฐ์ ์ ์ฅ ํฉ๋๋ค. - ๊ทธ๋ฆฌ๊ณ ์ด๊ธฐํ ๋จ๊ณ์์ undefined๊ฐ ์ ์ฅ ๋์ด์๋ ์ฃผ์ ๊ฐ์ ํ ๋น ๊ฐ์ด ์ ์ฅ๋ ์ฃผ์ ๊ฐ์ผ๋ก ๊ต์ฒดํ์ฌ ํ ๋น ๋จ๊ณ๊ฐ ์ด๋ฃจ์ด์ง๋๋ค.
์ฐธ๊ณ
- https://velog.io/@tess/%EB%B3%80%EC%88%98-%EC%84%A0%EC%96%B8-%EC%B4%88%EA%B8%B0%ED%99%94-%ED%95%A0%EB%8B%B9
- https://eunjinii.tistory.com/119
- https://bokki.org/javascript/%ED%83%80%EC%9E%85-%EA%B0%92-%EB%B3%80%EC%88%98/javascript-%EB%B3%80%EC%88%98var-let-const/
- https://velog.io/@gkdlvj1214/%EB%B3%80%EC%88%98-%EC%84%A0%EC%96%B8-%EC%B4%88%EA%B8%B0%ED%99%94-%ED%95%A0%EB%8B%B9-%EA%B7%B8%EB%A6%AC%EA%B3%A0-%ED%98%B8%EC%9D%B4%EC%8A%A4%ED%8C%85
'๐ Front-End > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Hoisting(ํธ์ด์คํ ) (0) | 2022.11.16 |
---|---|
์คํ ์ปจํ ์คํธ(Execution Context) (0) | 2022.11.16 |
var, let, const (0) | 2022.11.16 |
๋ณ์(variable) (0) | 2022.11.16 |
JavaScript (0) | 2022.11.16 |