ë³ìê° ë³´ì¼ê¹ì?
ë¤ì ì½ë를 ì¤ííì ë ì´ë¤ ê°ì´ ì¶ë ¥ë ê¹ì?
let x = 1;
function func() {
console.log(x); // ?
let x = 2;
}
func();
주ì: ì´ ë¬¸ì ìë í¨ì ì´ ììµëë¤. ë»í ëµì ë ì¬ë¦¬ì§ ë§ì¸ì.
ìë¬ê° ë°ìí©ëë¤.
ì¤ì ì½ë를 ì¤íí´ ë´ ìë¤.
let x = 1;
function func() {
console.log(x); // ReferenceError: Cannot access 'x' before initialization
let x = 2;
}
func();
ì´ ë¬¸ì ë âì¡´ì¬íì§ ìëâ ë³ìì âì´ê¸°íëì§ ììâ ë³ìì 미ë¬í ì°¨ì´ë¥¼ ìì보기 ìí´ ë§ë¤ì´ì¡ìµëë¤.
ë³ìì ì í¨ë²ìì í´ë¡ì ìì ì½ì ê²ì²ë¼ ì½ë ë¸ë¡(ëë í¨ì) ì¤íì ë¤ì´ê°ë ìê°ì ê·¸ ìì ë³ìë âì´ê¸°íëì§ ììâ ìíê° ë©ëë¤. ê·¸ë¦¬ê³ letì ë§ë ëê¹ì§ í´ë¹ ìíê° ì ì§ë©ëë¤.
âì´ê¸°íëì§ ììâ ìíì ë³ìë 기ì ì ì¼ë¡ ì¡´ì¬íì§ë§ let 문ì ë§ë기 ì ì ì¬ì©í ì ììµëë¤.
문ì ì ì½ëë ì´ë° ì´ê¸°íë기 ì ì ë³ìì ì ê·¼í ë ë¬´ì¨ ì¼ì´ ì¼ì´ëëì§ë¥¼ ì ë³´ì¬ì¤ëë¤.
function func() {
// ìì§ì í¨ìê° ììë ë ë¡ì»¬ ë³ì xì ì¡´ì¬ë¥¼ ìê³ ìì§ë§
// let ë¬¸ì´ ì¤íë ëê¹ì§ xë 'ì´ê¸°íëì§ ìì' ìí(dead zone)ì´ê¸° ë문ì
// ìë¬ê° ë°ìí©ëë¤.
console.log(x); // ReferenceError: Cannot access 'x' before initialization
let x = 2;
}
ì¤ì ì´ê¸°íê° ì¼ì´ë기 ì ë³ì를 ì¼ìì ì¬ì©íì§ ëª»íë 구ê°(ì½ë ë¸ë¡ì ììë¶í° letì´ ëì¬ ëê¹ì§)ì 'ë°ë ì¡´(dead zone)'ì´ë¼ ë¶ë¦
ëë¤.