๋ณ์๋ ํ๋์ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํด ํ๋ณดํ ๋ฉ๋ก๋ฆฌ ๊ณต๊ฐ ์์ฒด ๋๋ ๊ทธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๋ณํ๊ธฐ ์ํด ๋ถ์ธ ์ด๋ฆ์ ๋งํ๋ค.
๊ฐ๋จํ ๋งํ์๋ฉด ๋ณ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๊ฐ์ ์ ์ฅํ๊ณ ์ฐธ์กฐํ๋ ๋ฉ์ปค๋์ฆ์ผ๋ก, ๊ฐ์ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ ์์ง์ ์ธ ์ด๋ฆ์ด๋ค.
var UserId = 1;
var userName = 'Lee';
// ๊ฐ์ฒด๋ ๋ฐฐ์ด ๊ฐ์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ฉด
// ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ ํ๋๋ก ๊ทธ๋ฆ
ํํด์ ํ๋์ ๊ฐ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค.
var user = { id: 1, name: 'Lee'};
var users = [
{id: 1, name: 'Lee'},
{id: 2, name: 'Kim'}
]
๋ณ์์ ์ธ์ด๋ ๋ณ์๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋งํ๋ค. ์ข ๋ ์์ธํ ๋งํ๋ฉด ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋ณดํ๊ณ ๋ณ์ ์ด๋ฆ๊ณผ ํ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฃผ์๋ฅผ ์ฐ๊ฒฐํด์ ๊ฐ์ ์ ์ฅํ ์ ์๊ฒ ์ค๋นํ๋ ๊ฒ์ด๋ค. ๋ณ์ ์ ์ธ์ ์ํด ํ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋ณด๊ฐ ํด์ ๋๊ธฐ ์ ๊น์ง๋ ๋๊ตฌ๋ ํ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฌ์ฉํ ์ ์๋๋ก ๋ณดํธ๋๋ฏ๋ก ์์ ํ๊ฒ ์ฌ์ฉํ ์ ์๋ค.
๋ณ์๋ฅผ ์ฌ์ฉํ๋ ด ๋ฐ๋์ ์ ์ธ์ด ํ์ํ๋ค. ๋ณ์๋ฅผ ์ ์ธํ ๋๋ var, let, const ํค์๋๋ฅผ ์ฌ์ฉํ๋ค
console.log(score) ; // undefined
var score; // ๋ณ์ ์ ์ธ๋ฌธ
๋ณ์ ์ ์ธ์ด ์์ค์ฝ๋๊ฐ ํ ์ค์ฉ ์์ฐจ์ ์ผ๋ก ์คํ๋๋ ์์ , ์ฆ ๋ฐํ์์ด ์๋๋ผ ๊ทธ ์ด์ ๋จ๊ณ์์ ๋จผ์ ์คํ๋๊ธฐ ๋๋ฌธ์ undefined๊ฐ ์ถ๋ ฅ ๋๋ค.
๋ณ์ ์ ์ธ๋ฌธ์ด ์ฝ๋์ ์ ๋๋ก ๋์ด ์ฌ๋ ค์ง ๊ฒ์ฒ๋ผ ๋์ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ณ ์ ์ ํน์ง์ ๋ณ์ ํธ์ด์คํ ์ด๋ผ ํ๋ค.
๋ณ์ ์ ์ธ์ ์์ค์ฝ๋๊ฐ ์์ฐจ์ ์ผ๋ก ์คํ๋๋ ์์ ์ธ ๋ฐํ์ ์ด์ ์ ๋จผ์ ์คํ๋์ง๋ง ๊ฐ์ ํ ๋น์ ์์ค์ฝ๋๊ฐ ์์ฐจ์ ์ผ๋ก ์คํ๋๋ ์์ ์ธ ๋ฐํ์์ ์คํ๋๋ค.
console.log(score); // undefined
var score; // 1 ๋ณ์ ์ ์ธ
score = 80; 2 ๊ฐ์ ํ ๋น
console.log(score); // 80
var ํค์๋๋ก ์ ์ธํ ๋ณ์๋ ๊ฐ์ ์ฌํ ๋นํ ์ ์๋ค. ์ฌํ ๋น์ ํ์ฌ ๋ณ์์ ์ ์ฅ๋ ๊ฐ์ ์๋ก์ด ๊ฐ์ ์ ์ฅํ๋ ๊ฒ์ด๋ค.
์ฌํ ๋น์ ๋ณ์์ ์ ์ฅ๋ ๊ฐ์ ๋ค๋ฅธ ๊ฐ์ผ๋ก ๋ณ๊ฒฝํ๋ค. ๊ทธ๋์ ๋ณ์๋ผ๊ณ ํ๋ ๊ฒ์ด๋ค. ๋ง์ฝ ๊ฐ์ ์ฌํ ๋นํ ์ ์์ด์ ๋ณ์์ ์ ์ฅ๋ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค๋ฉด ๋ณ์๊ฐ ์๋๋ผ ์์๋ผํ๋ค.
์ถ์ฒ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep dive.