๐ก block scope๋ ๋ฌด์์ธ๊ฐ์?
day : 2022.02.18
block scope๋ ๋ฌด์์ธ๊ฐ์?
scope ๋?
scope๋ ๋ฒ์, ๋ณดํต ์ ํจ๋ฒ์๋ฅผ ๋ปํ๋ฉฐ,
์ด๋ค ๋ณ์๋ค์ด ์ด๋ ์์ ๊น์ง ์ ํจํ์ง๋ฅผ ์ ์ํ๋ค.
scope๋ ๋ฐ์ ๋๊ฐ์ง ์ข ๋ฅ๊ฐ ์๋ค.
- ํจ์ ์ค์ฝํ
- ๋ธ๋ก ์ค์ฝํ
function Scope๋?
ํจ์ ์ค์ฝํ๋ ํจ์์ ์ํด์ ์๊ธฐ๋ ๋ฒ์๋ฅผ ๋ปํ๋ค.
ES5๊น์ง๋ ๋ฒ์์ ์ ํจ๋ฒ์๊ฐ ํจ์์ ์ํด์๋ง ๋ฐ์ํ ์ ์์์ง๋ง.
ES6๋ก ๋์ด์ค๊ฒ ๋๋ฉด์ block scope๋ผ๋ ๊ฒ์ด ํ์ํ๊ฒ ๋์๋ค.
Block Scope๋?
๋ธ๋ก ์ค์ฝํ๋ ์ ํจ๋ฒ์๋ฅผ ์๋ฏธํ๋๋ฐ, ์ฌ๊ธฐ์ ๋ธ๋ก์ ์ฝ๋ ๋ฌธ๋จ {}(์ค๊ดํธ) ๋ฅผ ๋ํ๋ธ๋ค.
๋ฐ๋ผ์ { }์ ์ํด์ ์๊ธฐ๋ ๋ณ์์ ์ ํจ๋ฒ์๋ฅผ ๋ธ๋ก ์ค์ฝํ๋ผ๊ณ ํ๋ค.
์์
function func(a) {
if (a) {
var b = "b"
let c = "c"
}
else {
var b = "b2"
let c = "c2"
console.log(a);
}
console.log(b); //b or b2
console.log(c); //defined
}
func(true);