๋ชจ๋ JS Deep dive #04 | ๋ณ์
2022๋ 08์ 17์ผ 21:09
๐ ๋ณ์์ ํ์์ฑ
- ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด
10 + 20์ ์ฐ์ฐ์ ํ ๋ 10, 20, +๋ผ๋ ๊ธฐํธ(literal๊ณผ operator)๋ฅผ ์๊ณ ์์ด์ผ ํ๋ฉฐ,10 + 20์ด๋ผ๋ ํํ์(expression)์ ์๋ฏธ๋ฅผ parsingํ๋ค. - ๊ทธ ํ์ operator๊ธฐ์ค ์ ์์ ํผ์ฐ์ฐ์(operand)๋ฅผ ๊ฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ํน์ ์์ญ๋ด์ ์ฃผ์์ ๊ธฐ์ตํ๋ค.
- CPU๊ฐ ์ฐ์ฐ์ ์งํํ๊ณ ,
30์ด๋ผ๋ ๊ฒฐ๊ณผ๋ฅผ ์์์ ์ฃผ์์ ์ ์ฅํ๋ค.
โ ์ด 30์ด๋ผ๋ ๊ฐ์ ์ด๋ป๊ฒ ๋ค์ ์ฌ์ฉํ ์ ์์๊น
=> ๋ณ์๋ ํ๋์ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํด ํ๋ณดํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ์์ฒด ๋๋ ๊ทธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๋ณํ๊ธฐ ์ํด ๋ถ์ธ ์ด๋ฆ์ ๋งํ๋ค.
๐ JS์ ๋ณ์ ์ ์ธ
JS์ ๋ณ์ ์ ์ธ์ 2๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ์ํ๋๋ค. [1. ์ ์ธ ๋จ๊ณ(๋ณ์ ์ด๋ฆ์ ๋ฑ๋กํด์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ๋ณ์์ ์กด์ฌ๋ฅผ ์๋ฆผ), 2. ์ด๊ธฐํ ๋จ๊ณ(๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ๋ณดํ๊ณ undefined๋ฅผ ํ ๋นํด ์ด๊ธฐํ)]
์ ์ธ ๋จ๊ณ์์ ๋ณ์ ์ด๋ฆ์ ๋น๋กฏํด ๋ชจ๋ ์๋ณ์๋ ์คํ ์ปจํ ์คํธ์ ๋ฑ๋ก๋๋ค.
์คํ ์ปจํ ์คํธ
JS ์์ง์ด ์์ค์ฝ๋๋ฅผ ํ๊ฐ&์คํํ๊ธฐ ์ํด ํ์ํ ํ๊ฒฝ์ ์ ๊ณตํ๊ณ , ์ฝ๋ ์คํ ๊ฒฐ๊ณผ๋ฅผ ๊ด๋ฆฌํ๋ ์์ญ์ผ๋ก ์๋ณ์์ ์ค์ฝํ๋ฅผ ๊ด๋ฆฌํ๋ค.
=> ์ฆ ์ด๋ค ๊ฐ๋ ์ด๊ธฐํํ์ง ์์๋ undefined๋ก ์๋ฌต์ ์ธ ์ด๊ธฐํ๊ฐ ์ํ๋๋ค.
๐ ๋ณ์ ํธ์ด์คํ
๋ณ์ ํธ์ด์คํ ์ ์ ์ธํ ๋ณ์๋ฅผ JSํด์๊ธฐ๊ฐ ๊ฐ์ฅ ์๋จ์ ์๋ ๊ฒ์ฒ๋ผ ์ธ์ํด์ ๋ณ์์ ์ธ์ด ๋ฐํ์ ์ด์ ๋จ๊ณ์ ๋จผ์ ์คํ๋๋ JS ํน์ง์ด๋ค.
console.log(score); //undefined
var score = 80;
console.log(score); //80์์ ์ฝ๋๋ฅผ ๋ณด๋ฉด ์ ์ธ๊ณผ ์ด๊ธฐํ๊ฐ ๋์์ ๋ ๊ฒ์ฒ๋ผ ๋ณด์ฌ๋ ์ ์ธ์ ๋ฐํ์ ์ด์ ์ ๋๊ธฐ ๋๋ฌธ์ ์ฒซ๋ฒ์งธ ๋ผ์ธ์์ undefined๊ฐ ๋์๋ค. ์ฆ var score; score = 80; ์ด๋ ๊ฒ ๋ ์ค๋ก ๋๋ ๊ฒ๊ณผ ๊ฐ๋ค๋ ๊ฒ์ด๋ค.