๐บ Front End/-- JS & ES6+13 [Javascript-Core] Execution Context์ Hoisting์ ์๊ด ๊ด๊ณ์ ์คํด, ๊ทธ๋ฆฌ๊ณ ์ดํด ๋ถ์ :: EnvironmentRecord๊ฐ Hoisting์ ํ๋ ๋ฐฉ๋ฒ ํธ์ด์คํ (Hoisting) ํธ์ด์คํ ์ ์ง๋ ์๊ฐ์ ์ด์ผ๊ธฐ ํ๋ ์คํ ์ปจํ ์คํธ์ Creation Phase์์ ์ด๋ค ๋ฐฉ์์ผ๋ก ์๋ํ๋์ง์ ๋ํ ๋ฐฉ์์ธ๋ฐ, MDN์์๋ ๋ค์๊ณผ ๊ฐ์ด ๊ฒฝ๊ณ ํ๊ณ ์๋ค. ๋ณดํต ์ฌ๋๋ค์ด ํธ์ด์คํ ์ด ์ผ์ด๋๋ฉด ๋ณ์๋ ํจ์๊ฐ ์ฝ๋ ์๋จ์ผ๋ก ๋์ด์ฌ๋ ค์ง๋ค๋ผ๊ณ ํ๋๋ฐ, ์ด๋ ์๋ชป๋ ์ ๋ณด์ด๋ค. ๋ณ์๋ ํจ์ ์ฝ๋๋ ์ค์ ์์น ๊ทธ๋๋ก ์กด์ฌํ๊ณ ๊ฐ๋ ์ ์ผ๋ก ์๋จ์ผ๋ก ๋์ด์ฌ๋ ค์ง๋ค๋ผ๊ณ ํํํ๋๊ฒ ์ ํํ๋ค. Hoisting์ ์ดํดํ๋์ง ํ์ธํด๋ณด์. MDN์์๋ ์์ ๊ฐ์ ๋ฐฉ์์ ํธ์ด์คํ ์ด๋ผ๊ณ ์์๋ฅผ ์ ์ํ๊ณ ์๋ค. ๊ทธ๋ผ ๋ค์๊ณผ ๊ฐ์ ์ํฉ์์ ๊ฐ๊ฐ์ x๋ ์ด๋ค ๋ฐฉ์์ผ๋ก ์ถ๋ ฅ๋ ์ง ์ค์ค๋ก์๊ฒ ๋๋ตํด๋ณด์. ๊ฒฐ๊ณผ๊ฐ ๋ฌด์์ผ์ง ์ฒดํฌํด๋ณด์. 1 undefined 2 1 1 2 EnvironmentRecord์ ์ํ Hoi.. 2020. 7. 28. [Javascript-Core] Execution Context, ์คํ ๋ฌธ๋งฅ์ ๊ดํ์ฌ ์์๋ณด์. Execution Context ์คํ ์ปจํ ์คํธ๋ ์คํํ ์ฝ๋์ ํ์ํ ํ๊ฒฝ ์ ๋ณด๋ฅผ ๋ชจ์ ๊ฐ์ฒด๋ฅผ ๋ปํ๋ค. ์ด๋, OS๋ฅผ ํ์ตํ๋ค๊ฐ ๋ง์ฃผํ๊ฒ ๋๋ ์คํ ๋ฌธ๋งฅ, ์คํ ์ปจํ ์คํธ, ์ต์คํ์ ์ปจํ ์คํธ์ ๋ค๋ค ๋์ผํ ๊ฐ๋ ์ด๋ค. ์กฐ๊ธ ์ฝ๊ฒ ์ด์ผ๊ธฐ ํ๋ค๋ฉด ์๋ฅผ ๋ค์ด์ ์ฐ๋ฆฌ๊ฐ var a = 10; function hello() { var b = "hello"; return b; } ์ ๊ฐ์ ์ฝ๋๊ฐ ์๋ค๋ฉด ์ฌ๊ธฐ์ ์คํ์ ํ์ํ ํ๊ฒฝ ์ ๋ณด๋ var a = 10๊ณผ hello()ํจ์์ var b = 'hello'๊ฐ ์์ ๊ฒ์ด๋ค. ์๋ณ์์ ๋ณ์๋ฑ๊ณผ ๊ฐ์ ์ ๋ณด๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์๋ ๊ฐ์ฒด๋ฅผ ์คํ ์ปจํ ์คํธ๋ผ๊ณ ํ๋ค. ์ด๋ฐ ์คํ ์ปจํ ์คํธ๋ ์ฝ ์คํ์ ์ํด ์คํ ํ๊ฒฝ์ ๋ํ ์์๋ฅผ ๋ณด์ฅํ๋๋ฐ, ์์ฐจ์ ์ผ๋ก ์ฝ๋๋ฅผ Interpreting ํ๋ฉด์ ์ฝ.. 2020. 7. 27. [Javascript-Core] ์๋ฐ์คํฌ๋ฆฝํธ์ null๊ณผ undefined ๋ด ์ฃผ ์ธ์ด๋ ์๋ฐ์ด๋ค. ์๋ฐ์์ ๋ณดํต ๊ฐ์ด ์์์ ํํํ๋ ๋ฐฉ๋ฒ์ ๋ํ์ ์ผ๋ก null์ด ์๋ค. Spring ๊ฐ๋ฐ์ ํ๋ค๊ฐ ์์ฃผ ๋ง์ฃผํ๊ฒ ๋๋ nullPointException. ํ์ง๋ง ์๋ฐ์คํฌ๋ฆฝํธ์์ ์์์ ํํํ๋ ๋ฐฉ๋ฒ์ 2 ๊ฐ์ง๊ฐ ์๋ค. null undefined ์ค๋ ์์๋ณผ ๊ฒ์ ์ด ๋ ๊ฐ์ง ์์์ ํํํ๋ ๋ฐฉ๋ฒ์ด๋ค. null null์ ๋ํ์ ์ผ๋ก ๊ฐ์ด ์์์ ์๋ฏธํ๋ค. null์ ๋ณ์ ํ ๋น ๊ณผ์ ์์ ์ฐธ์กฐํ๊ณ ์์ง ์์์ ๋ํ๋ธ๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๊ฐ null์ ๋ง๋๊ธฐ ์ํด์๋ ์์์ ์ผ๋ก null์ด๋ผ๋ ๊ฒ์ ํ ๋นํด์ค์ผ ํ๋ฏ๋ก ๋ฐ์ดํฐ ํ์ ์ผ๋ก ๋ถ๋ฅํ๋ค. ์ด๋ฌํ null์ ๊ณ ์์ ์ธ ๋นํ ๋น์ด๋ผ๊ณ ํํํ๊ธฐ๋ ํ๋ค. undefined undefined๋ ๋ณ์๋ฅผ ์์ฑํ๊ณ ์์ง ํ ๋น๋์ง ์์์์ ์๋ฏธํ๋ค. ์ด๋ฐ ์.. 2019. 11. 29. [Javascript-Core] ๋ณ์์ ์ ์ธ var๊ณผ let ๊ทธ๋ฆฌ๊ณ const์ ์ฐจ์ด :: Difference among var and let and const ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํ์ตํ๊ธฐ ์ํด์ ์ฑ ์ ๋ดค์ ๋, ๋๋ถ๋ถ์ ์ฑ ์์ var์ผ๋ก ๋ณ์๋ฅผ ์ ์ธํ๋ผ๊ณ ๊ฐ๋ฅด์น๋ค. ํ์ง๋ง ๋ด๊ฐ ์์ ์ ์๋ง๋ฅผ ์ค๋นํ ๋ ์๋ง ์ํ์ ์ํด ์ ๊น ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๊ณต๋ถํ๋ ์ ์ด ์๋๋ฐ, ๊ทธ ๋ var๋์ let์ผ๋ก ๋ณ์๋ฅผ ์ ์ธํ๋ผ๊ณ ํ๋ ๊ธ์ ๋ณธ ์ ์ด ์์๋ค. ์ค๋์ ๊ทธ ๋ ์ฐจ์ด์ ์ ํ์คํ ๋น๊ตํด๋ณด๊ณ ๋์ด๊ฐ๋ณด์. ๊ฒฐ๋ก var let const ์ฌ์ ์ธ O X X ์ฌํ ๋น O O X ์์กด ๋ฒ์ Funtion Scope(ํจ์) Block Scope(์ค๊ดํธ) Block Scope(์ค๊ดํธ) ๋ณ์ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋ค๋ฅธ ์ธ์ด์ ๊ฐ์ด ๋ณ์์ ๊ฐ์ ๋ด์ ์ ์๋ค. ๋ณ์๋ variable์ผ๋ก ๋ณํ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ๊ทธ๋ฆ์ ์ญํ ์ ์ํํ๋ค. ์ฐ๋ฆฌ๊ฐ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ ๊ฐ๊ฐ ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ํตํด์ ํน์ .. 2019. 11. 29. ์ด์ 1 2 3 4 ๋ค์