Call Stack๊ณผ Execution Context ๋ฅผ ์์๋ณด์
์ด ๊ธ์์ Call Stack๊ณผ Execution Context์ ๋ํด ๋ค๋ฃน๋๋ค. ๊ฐ ์ฉ์ด๋ ํ๊ตญ์ด๋ก ํด์ํ์ง ์๊ณ ์์ด ๊ทธ๋๋ก ํ๊ธฐํฉ๋๋ค.
medium.com
์ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ ๊ฐ ์ดํดํ ๋ถ๋ถ๋ง ์ ์๋๋ก ์ ๋ฆฌํ์ต๋๋ค.
์ ๋งํฌ๋ฅผ ๋ณด์๋ฉด ๋ ์์ธํ๊ฒ ๊ทธ๋ฆผ๊ณผ ํจ๊ป ์ ๋ณด๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์คํ ์ปจํ ์คํธ Execution context
์คํ ์ปจํ ์คํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๊ฐ ์คํ๋๋ ํ๊ฒฝ์ ๋งํฉ๋๋ค. ํฌ๊ฒ 2๊ฐ์ง๋ก ๋๋ฉ๋๋ค.
Global Execution Context ์ Function Execution Context ์ ๋๋ค.
๋ธ๋ผ์ฐ์ ์ ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์ฒ์ ์ฝ๋๋ฅผ ์คํํ ๋ ๊ธ๋ก๋ฒ ์คํ ์ปจํ ์คํธ๋ฅผ ์์ฑํ๊ณ ์ด๊ฒ์ ์ฝ ์คํ ์ push ํฉ๋๋ค. ๊ทธ ํ ์์ง์ด ํจ์๋ฅผ ํธ์ถํ ๋ ๋ง๋ค ํจ์๋ฅผ ์ํ ํจ์ ์คํ ์ปจํ ์คํธ๋ฅผ ์์ฑํ๊ณ ์ฝ ์คํ์ push ํฉ๋๋ค.
์ฝ ์คํ Call stack
์ฝ ์คํ์ ์ฝ๋๊ฐ ์คํ๋๋ฉด์ ์์ฑ๋๋ ์คํ ์ปจํ ์คํธ๋ฅผ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ ์ ๋๋ค.
์ฝ ์คํ์ ๊ตฌ์กฐ๋ ๋ฎ๊ฐ๊ฐ ์๋ ๋ฐ๊ตฌ๋์ ์ฐจ๊ณก ์ฐจ๊ณก ์๊ฑด์ ๋ฃ์ด ๋์๋ค๊ฐ ์๊ฑด์ด ํ์ํ๋ฉด, ์์์ ๋ถํฐ (๊ฐ์ฅ ๋ฆ๊ฒ ๋ฃ์ ๊ฒ๋ถํฐ) ๊บผ๋ด๋ ๋ฐฉ์์ ๋๋ค. ๊ฐ์ฅ ๋นจ๋ฆฌ ๋ค์ด์จ ์คํ ์ปจํ ์คํธ๊ฐ ๊ฐ์ฅ ๋ฆ๊ฒ ๋๊ฐ๋๋ค.
์คํ ์ปจํ ์คํธ ์์ฑ ๊ณผ์ ์ถํ ํฌ์คํ
'JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JS ์ ์ฌ๋ฐฐ์ด๊ณผ ๋ฐฐ์ด์ ์ฐจ์ด์ (0) | 2022.08.24 |
---|---|
JS ๊ตฌ์กฐ๋ถํด ํ ๋น (0) | 2022.08.12 |
JS ํธ์ด์คํ ๊ณผ TDZ (0) | 2022.08.11 |
JS ์ค์ฝํ์ ์ค์ฝํ ์ฒด์ธ (0) | 2022.08.11 |
JS Equality operators == === != !== (0) | 2022.08.11 |