๐ก ๋งค๋์ง๋ ์ธ์ด
์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น๊ณผ ํด์ ๋ฅผ ์ธ์ด ์์ฒด์์ ์๋์ผ๋ก ๊ด๋ฆฌํ๋ ๋งค๋์ง๋ ์ธ์ด์ ๋๋ค. ๋ฐ๋ผ์ ๊ฐ๋ฐ์๊ฐ ์ง์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ์ ๊ทผํ๊ฑฐ๋ ์กฐ์ํ ํ์๊ฐ ์์ต๋๋ค.
์ด๋ฏธ์ง์์ ์ฌ์ฉ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ ์ฃผ์ ํ๊ธฐ๋ฒ(@)์ ์ดํด๋ฅผ ๋๊ธฐ ์ํ ๋ฐฉ์์ผ๋ก ์ค์ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ํ๊ธฐ๋ฒ์ ๋ํ ๋ด์ฉ์ ์ ๊ณตํ์ง ์์ต๋๋ค.
๐ก ๊ฐ๋น์ง ์ปฌ๋ ํฐ
๋งค๋์ง๋ ์ธ์ด์ธ ์๋ฐ์คํฌ๋ฆฝํธ ํน์ฑ ์ ์ฌ์ฉ์๊ฐ ์ง์ ๋ฉ๋ชจ๋ฆฌ ํด์ ๊ฐ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์ฌ์ฉ๋์ง ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ์ฌ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ฅผ ๋ด์ฅํฉ๋๋ค.
๊ฐ๋น์ง ์ปฌ๋ ํฐ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ฒ์ฌํ์ฌ ์ฌ์ฉ๋์ง ์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
์ ์ญ ์ค์ฝํ: ์ด๋์๋ ์ ๊ทผ ๊ฐ๋ฅํ ๋ณ์ ์์ญ
ํจ์ ์ค์ฝํ: ํจ์ ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅํ ๋ณ์ ์์ญ. var.
var a = 10; let b = 20; const c = 30;
function funcScope() {
console.log("----- Function Scope ------");
console.log("์ ์ญ๋ณ์: ", a, b, c);
var fA = 40;
let fB = 50;
const fC = 60;
console.log("ํจ์ ๋ด๋ถ: ", fA, fB, fC);
}
funcScope();
// console.log("ํจ์ ๋ณ์", fA, fB, fC);
๋ธ๋ก ์ค์ฝํ: ์ค๊ดํธ๋ก ๊ฐ์ธ์ง ์ฝ๋ ๋ธ๋ก ๋จ์๋ก ์ ๊ทผ ๊ฐ๋ฅํ ๋ณ์ ์์ญ. let๊ณผ const.
{ console.log("----- Block Scope ------"); console.log("์ ์ญ๋ณ์: ", a, b, c);
var bA = 70; // ํจ์ ์ค์ฝํ์ด๊ธฐ ๋๋ฌธ์ ์ ์ญ ๋ณ์๊ฐ ๋ฉ๋๋ค.
let bB = 80;
const bC = 90;
console.log("๋ธ๋ก ๋ด๋ถ: ", bA, bB, bC);
}
console.log("๋ธ๋ก ๋ณ์: ", bA, bB, bC);