๐ค var, let, const๋ ๋ณ์ ์ ์ธ ๋ฐฉ์์ด๋ค. ๊ทธ ์ฐจ์ด๋ฅผ ์ ๋ฆฌํด๋ณด์
๋ณ์ํ ๋น, ์ค์ฝํ, ํธ์ด์คํ ์ฌ๋ถ์ ์ฐจ์ด๋ก ์ ๋ฆฌ!
๋ณ์ ์ค๋ณต ์ ์ธ์ ํ์ฉํ์ฌ ์๋์น ์์ ์ฌํ ๋น์ ๋ฐ์์ํจ๋ค
var๋ก ์ ์ธ๋ ๋ณ์๋ ํจ์ ๋ ๋ฒจ ์ค์ฝํ๋ง ์ง์ญ์ค์ฝํ๋ก ์ธ์ ํ๋ค
var a = "aaa"; // ํจ์ ์ธ๋ถ
function callB() {
var b = "bbb";
console.log(a); //aaa - ์ ์ญ๋ณ์
if(b) {
var c = "ccc";
console.log(b); //bbb- ํจ์ ๋ด ์ ์ธํ ๋ณ์๋ผ์ ๊ฐ๋ฅ
}
console.log(c); //ccc- ํจ์ ๋ด ์ ์ธํ ๋ณ์๋ผ์ ๊ฐ๋ฅ
}
callB();
function callC() {
var d = "ddd";
console.log(a); //aaa - ์ ์ญํจ์
console.log(b); //b is not defined
console.log(c); //c is not defined
console.log(d); //ddd- ํจ์ ๋ด ์ ์ธํ ๋ณ์๋ผ์ ๊ฐ๋ฅ
}
callC();
//์ฝ๋๋ธ๋ก
if(a){
var e = "eee"
}
console.log('์ฝ๋ ๋ธ๋ก๋ด์ ์๋ค', e)
//์ฝ๋๋ธ๋ก์ var ํค์๋๋ก e๋ฅผ ์ ์ธํ์ง๋ง ์ ์ญ ๋ณ์๊ฐ ๋จ
์ ์ธ ๋จ๊ณ
๊ณผ ์ด๊ธฐํ
๋จ๊ณ๊ฐ ๋์์ ์ผ์ด๋๋ค (๋ณ์๋ฅผ ์ ์ธํ๋ ๋์์ ์ด๊ธฐํํ์ฌ undefined
๋ก ๋ง๋ ๋ค)ES6๋ถํฐ ๋์จ ๊ฒ์ผ๋ก var ๋์ฒด์ ์ด๋ค
๋ณ์ ์ค๋ณต ์ ์ธ ๊ธ์ง์ํจ๋ค(๋ฌธ๋ฒ ์๋ฌ ๋ฐ์์ํด)
๋ชจ๋ ์ฝ๋ ๋ธ๋ก(ํจ์, if๋ฌธ, for๋ฌธ, while๋ฌธ ..๋ฑ) ์ง์ญ ์ค์ฝํ๋ก ์ธ์ ํ๋ ๋ธ๋ก ๋ ๋ฒจ ์ค์ฝํ ์์์๋ ์ง์ญ๋ณ์๋ก ์ธ์
๋ณ์ ํธ์ด์คํ
: ์ ์ธ ๋จ๊ณ
์ ์ด๊ธฐํ ๋จ๊ณ
๊ฐ ๋ถ๋ฆฌ๋์ด ์งํ
- ๋ฐํ์ ์ด์ ์ ์๋ฌต์ ์ผ๋ก ์ ์ธ ๋จ๊ณ
๊ฐ ๋จผ์ ์คํ๋์ง๋ง ์ด๊ธฐํ ๋จ๊ณ
๋ ๋ณ์ ์ ์ธ๋ฌธ์ ๋๋ฌํ์ ๋ ์คํ๋๋ค
- ์ผ์์ ์ฌ๊ฐ์ง๋(TDZ)๊ฐ ์กด์ฌ
- ๋ณ์ ํธ์ด์คํ
์ด ์ผ์ด๋์ง ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ธ๋ค
let๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ES6๋ถํฐ ๋์๋ค
const๋ ๋ฐ๋์ ์ ์ธ๊ณผ ํ ๋น์ด ๋์์ ์ด๋ฃจ์ด์ ธ์ผ ํ๋ค
์ฌํ ๋น์ด ๊ธ์ง๋์๋ค
์์์ด๋ค(์ฌํ ๋น์ด ๊ธ์ง๋ ๋ณ์)
const ํค์๋๋ก ์ ์ธ๋ ๋ณ์์ ๊ฐ์ฒด๋ฅผ ํ ๋นํ ๊ฒฝ์ฐ๋ ๊ฐ ๋ณ๊ฒฝ ๊ฐ๋ฅ
๋ธ๋ก๋ ๋ฒจ ์ค์ฝํ๋ฅผ ๊ฐ์ง๋ค
๋ณ์ ํธ์ด์คํ
์ด ์ผ์ด๋์ง ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ธ๋ค
์ถ์ฒ : https://nuhends.tistory.com/111
https://poiemaweb.com/es6-block-scope