EP-01 | JavaScript ์๋ ๋ฐฉ์ ๐ฅ& Execution Context
Source: Dev.to
์คํ ์ปจํ ์คํธ๋? (์ฝ๊ฒ ๋งํ๋ฉด)
์คํ ์ปจํ ์คํธ๋ฅผ ์๋ฐ์คํฌ๋ฆฝ์ค๊ฐ ์ผํ๋ ๊ต์ค์ด๋ผ๊ณ ์๊ฐํด ๋ณด์ธ์.
์ด ๊ต์ค์์:
- ํ์ดํธ๋ณด๋ โ ๋ชจ๋ ์ค์ํ ๋ฉ๋ชจ(๋ณ์์ ํจ์)๊ฐ ์ ํ๋ ๊ณณ โ ๋ฉ๋ชจ๋ฆฌ ์ปดํฌ๋ํธ
- ์ ์๋ โ ์ง์๋ฅผ ํ๋์ฉ ์ฝ๊ณ ์คํํ๋ ์ฌ๋ โ ์คํ ์ค๋ ๋
1. ๋ฉ๋ชจ๋ฆฌ ์ปดํฌ๋ํธ (๋ณ์ ํ๊ฒฝ)
์ฝ๊ฒ ๋งํ๋ฉด
์ฝ๋๋ฅผ ์คํํ๊ธฐ ์ ์ ์๋ฐ์คํฌ๋ฆฝ์ค๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ฅ์.
์ค์ํ ์์
๊ต์ค์ ๋ค์ด๊ฐ์ ์ ์๋์ด ์น ํ์ ์ด๋ฆ์ ์ ๋๋ค๊ณ ์์ํด ๋ณด์ธ์:
studentName = "Ali"
age = 10
greet = function(){...}
ํ์ดํธ๋ณด๋๊ฐ ๋ฐ๋ก ๋ฉ๋ชจ๋ฆฌ ์ปดํฌ๋ํธ์ด๋ฉฐ, ์์ ์ด ์์๋๊ธฐ ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค.
2. ์ฝ๋ ์ปดํฌ๋ํธ (์คํ ์ค๋ ๋)
์ฝ๊ฒ ๋งํ๋ฉด
์๋ฐ์คํฌ๋ฆฝ์ค๊ฐ ์ฝ๋๋ฅผ ํ ์ค์ฉ ์คํํ๋ ๋ถ๋ถ, ๋ง์น ์ ์๋์ด ์ง์๋ฅผ ์ฐจ๋ก๋๋ก ์ฝ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
์ค์ํ ์์
ํ์ดํธ๋ณด๋(๋ฉ๋ชจ๋ฆฌ)์ ์ ํ ๋ค, ์ ์๋์ด ๋
ธํธ๋ฅผ ์ฝ๊ธฐ ์์ํฉ๋๋ค:
- ํ์๋ค์๊ฒ ์ธ์ฌํ๊ธฐ
- ์์ ๋ด์ฉ ์ค๋ช ํ๊ธฐ
- ์ง๋ฌธํ๊ธฐ
- ๋ต๋ณ ๊ธฐ๋ค๋ฆฌ๊ธฐ
- ๋ค์ ์ง์๋ก ์ด๋ํ๊ธฐ
์ ์๋์ ๋ ์ค์ ๋์์ ์ฝ์ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ์คํ ์ค๋ ๋์ ๋๋ค.
3. ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋๊ธฐ์์ด๋ฉฐ ๋จ์ผ ์ค๋ ๋
์ฝ๊ฒ ๋งํ๋ฉด
์๋ฐ์คํฌ๋ฆฝ์ค๋ ํ ๋ฒ์ ํ๋์ ์์
๋ง ์์๋๋ก ์ํํฉ๋๋ค.
์ค์ํ ์์
ํ์์ด ์ฑ
์ ํฐ ์๋ฆฌ๋ก ์ฝ๋๋ค๊ณ ์๊ฐํด ๋ณด์ธ์. ํ ๋ฌธ์ฅ์ ๋๋ด์ผ ๋ค์ ๋ฌธ์ฅ์ ์์ํ ์ ์๊ณ , ๋ ๋ฌธ์ฅ์ ๋์์ ์ฝ์ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ์๋ฐ์คํฌ๋ฆฝ์ค๊ฐ ์๋ํ๋ ๋ฐฉ์โ๋จ๊ณ๋ณ, ํ ๋ฒ์ ํ๋์ฉ.
์ ์ฒด ์ค์ํ ์์ (์ ์ฒด ํ๋ฆ)
var name = "Sara";
function sayHi() {
console.log("Hi " + name);
}
sayHi();
์ค์ํ ๋ถ์
- ๋ฉ๋ชจ๋ฆฌ ์ปดํฌ๋ํธ (ํ์ดํธ๋ณด๋)
name: "Sara"sayHi: function
- ์คํ ์ค๋ ๋ (์ ์๋์ ์ฝ๊ธฐ ๋จ๊ณ)
sayHi()๋ก ์ด๋- ์คํ โ
"Hi Sara"์ถ๋ ฅ
์๋ฐ์คํฌ๋ฆฝ์ค๋ ๋ค์ ์ค๋ก ๋์ด๊ฐ๊ธฐ ์ ์ ์ด ๊ณผ์ ์ ๋ชจ๋ ๋ง์นฉ๋๋ค.