TDZ (Temporal Dead Zone)

๋จผ์ € ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด์ž.

new Car('red'); // Does it work? (no; ReferenceError)

class Car {
  constructor(color) {
    this.color = color;
  }
}

๋‚˜๋Š” ๋‹น์—ฐํžˆ ํด๋ž˜์Šค๋„ ํ˜ธ์ด์ŠคํŒ…๋˜์–ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•  ์ค„ ์•Œ์•˜์œผ๋‚˜, ์•„๋‹ˆ์—ˆ๋‹ค. ์ฐธ๊ณ ๋กœ ํ•จ์ˆ˜๋Š” ๊ฐ€๋Šฅํ•˜๋‹ค.

greet('World'); // Does it work? (yes)

function greet(who) {
  return `Hello, ${who}!`;
}

์ƒ๊ฐํ•ด๋ณด๋ฉด ES6๋ถ€ํ„ฐ๋Š” ํ•ญ์ƒ strict ๋ชจ๋“œ๋กœ ํ•ด์„๋˜๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ์ƒ ๊ฐ€๋Šฅํ•œ ๊ฒฐ๊ณผ์˜€๋‹ค.

let, const, class ํ‚ค์›Œ๋“œ๋Š” TDZ์˜ ์˜ํ–ฅ์„ ๋ฐ›์œผ๋ฏ€๋กœ ์ฃผ์˜ํ•ด์•ผ๊ฒ ๋‹ค.

Last updated