็„ก์ œ

var, let, const ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐฉ์‹ ๋ณธ๋ฌธ

<script>

var, let, const ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐฉ์‹

yo-u-loo 2026. 6. 2. 11:35

 

๐ŸŸจ var (์ „ํ†ต์ ์ธ ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐฉ์‹)

ES6(2015) ์ด์ „๋ถ€ํ„ฐ ์‚ฌ์šฉ๋˜๋˜ ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐฉ์‹์ด๋‹ค.

์œ ์—ฐํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฌธ์ œ์  ๋•Œ๋ฌธ์— ํ˜„์žฌ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.

var name = "์ฒ ์ˆ˜";
var name = "์˜ํฌ"; // ์žฌ์„ ์–ธ ๊ฐ€๋Šฅ (์œ„ํ—˜)

 

1๏ธโƒฃ ํ•จ์ˆ˜ ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„

ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋งŒ ์ง€์—ญ ๋ณ€์ˆ˜๋กœ ์ทจ๊ธ‰๋œ๋‹ค.

if (true) {
    var age = 20;
}

console.log(age); // 20
  • if, for ๋“ฑ์˜ ๋ธ”๋ก ๋‚ด๋ถ€์—์„œ ์„ ์–ธํ•ด๋„ ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

2๏ธโƒฃ ์žฌ์„ ์–ธ ๊ฐ€๋Šฅ

๊ฐ™์€ ์Šค์ฝ”ํ”„์—์„œ ๋™์ผํ•œ ์ด๋ฆ„์˜ ๋ณ€์ˆ˜๋ฅผ ๋‹ค์‹œ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค.

var score = 100;
var score = 90; // ๊ฐ€๋Šฅ
  • ์˜๋„ํ•˜์ง€ ์•Š์€ ๊ฐ’ ๋ณ€๊ฒฝ ์œ„ํ—˜์ด ์žˆ๋‹ค.

 

3๏ธโƒฃ ํ˜ธ์ด์ŠคํŒ… ๋ฐœ์ƒ

๋ณ€์ˆ˜ ์„ ์–ธ ๋ถ€๋ถ„๋งŒ ์Šค์ฝ”ํ”„ ์ตœ์ƒ๋‹จ์œผ๋กœ ๋Œ์–ด์˜ฌ๋ ค์ง„ ๊ฒƒ์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋ฉฐ, ๊ฐ’์˜ ํ• ๋‹น์€ ์›๋ž˜ ์œ„์น˜์—์„œ ์‹คํ–‰๋œ๋‹ค.

console.log(value); // undefined

var value = 10;
  • ์„ ์–ธ ์ „ ์ ‘๊ทผ ์‹œ undefined๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค.

 

4๏ธโƒฃ ์ „์—ญ ๊ฐ์ฒด(window) ์˜ค์—ผ

๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์—์„œ ์ „์—ญ ๋ณ€์ˆ˜๋กœ ์„ ์–ธํ•˜๋ฉด window ๊ฐ์ฒด์˜ ์†์„ฑ์ด ๋˜์–ด, ์˜๋„์น˜ ์•Š๊ฒŒ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ณธ ๋‚ด์žฅ ๊ธฐ๋Šฅ์„ ๋ฎ์–ด์“ธ ์œ„ํ—˜์ด ์žˆ๋‹ค.

var ๋ณ€์ˆ˜ = "์•ˆ๋…•";
console.log(window.๋ณ€์ˆ˜); // "์•ˆ๋…•"

 

๐ŸŸจ let (์žฌํ• ๋‹น์ด ๊ฐ€๋Šฅํ•œ ํ˜„๋Œ€์  ๋ณ€์ˆ˜)

ES6์—์„œ ์ถ”๊ฐ€๋œ ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐฉ์‹์ด๋‹ค. ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๋ณ€์ˆ˜์— ์‚ฌ์šฉํ•œ๋‹ค.

let score = 100;
score = 90; // ์žฌํ• ๋‹น ๊ฐ€๋Šฅ

 

1๏ธโƒฃ ๋ธ”๋ก ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„

{ } ๋ธ”๋ก ๋‚ด๋ถ€์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค.

if (true) {
    let age = 20;
}

// console.log(age); // ์—๋Ÿฌ

 

2๏ธโƒฃ ์žฌํ• ๋‹น ๊ฐ€๋Šฅ

์„ ์–ธ ํ›„ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

let count = 1;

count = 2; // ๊ฐ€๋Šฅ

 

3๏ธโƒฃ ์žฌ์„ ์–ธ ๋ถˆ๊ฐ€๋Šฅ

๊ฐ™์€ ์Šค์ฝ”ํ”„์—์„œ ๋™์ผํ•œ ์ด๋ฆ„์œผ๋กœ ๋‹ค์‹œ ์„ ์–ธํ•  ์ˆ˜ ์—†์–ด ์•ˆ์ „ํ•˜๋‹ค.

let name = "์ฒ ์ˆ˜";

// let name = "์˜ํฌ"; // ์—๋Ÿฌ

 

4๏ธโƒฃ ํ˜ธ์ด์ŠคํŒ… ๋ฐœ์ƒ (TDZ)

ํ˜ธ์ด์ŠคํŒ…์€ ๋ฐœ์ƒํ•˜์ง€๋งŒ ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™” ์‚ฌ์ด์˜ TDZ ๋•Œ๋ฌธ์— ์„ ์–ธ ์ด์ „ ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

console.log(score); // ReferenceError

let score = 100;
  • ์„ ์–ธ๊ณผ ์ดˆ๊ธฐํ™” ์‚ฌ์ด์˜ ์˜์—ญ์„ TDZ(Temporal Dead Zone)๋ผ๊ณ  ํ•œ๋‹ค.

 

๐ŸŸจ const (๊ฐ’์ด ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ƒ์ˆ˜)

ES6์—์„œ ์ถ”๊ฐ€๋œ ์ƒ์ˆ˜ ์„ ์–ธ ๋ฐฉ์‹์ด๋‹ค. ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๋ณ€์ˆ˜์— ์‚ฌ์šฉํ•œ๋‹ค.

const PI = 3.14;

 

1๏ธโƒฃ ๋ธ”๋ก ๋ ˆ๋ฒจ ์Šค์ฝ”ํ”„

let๊ณผ ๋™์ผํ•˜๊ฒŒ { } ๋‚ด๋ถ€์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

2๏ธโƒฃ ์žฌํ• ๋‹น ๋ถˆ๊ฐ€๋Šฅ

์„ ์–ธ ํ›„ ์ƒˆ๋กœ์šด ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์—†๋‹ค.

const age = 20;

// age = 30; // ์—๋Ÿฌ

 

3๏ธโƒฃ ์„ ์–ธ๊ณผ ๋™์‹œ์— ์ดˆ๊ธฐํ™” ํ•„์š”

// const name; // ์—๋Ÿฌ

const name = "์ฒ ์ˆ˜"; // ๊ฐ€๋Šฅ

 

4๏ธโƒฃ ๊ฐ์ฒด์™€ ๋ฐฐ์—ด ๋‚ด๋ถ€ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ

const๋Š” ๋ณ€์ˆ˜ ์ž์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ’์„ ์ฐธ์กฐํ•˜๋„๋ก ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š”๋‹ค.

const user = { name: "์ฒ ์ˆ˜" };
user.name = "์˜ํฌ"; // ๊ฐ€๋Šฅ (๋‚ด๋ถ€ ์†์„ฑ ๋ณ€๊ฒฝ)

// user = { name: "๋ฏผ์ˆ˜" }; // ๋ถˆ๊ฐ€๋Šฅ (์ฐธ์กฐ๊ฐ’ ์ž์ฒด ๋ณ€๊ฒฝ)
  • ๊ฐ์ฒด ๋‚ด๋ถ€ ์†์„ฑ์ด๋‚˜ ๋ฐฐ์—ด ์š”์†Œ ๋ณ€๊ฒฝ์€ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

5๏ธโƒฃ ํ˜ธ์ด์ŠคํŒ… ๋ฐœ์ƒ (TDZ)

let๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ˜ธ์ด์ŠคํŒ…์€ ๋ฐœ์ƒํ•˜์ง€๋งŒ, TDZ์˜ ์˜ํ–ฅ์„ ๋ฐ›์•„ ์„ ์–ธ ์ „์— ์ ‘๊ทผํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

console.log(MAX_NUM); // ReferenceError
const MAX_NUM = 100;

 

 

๐Ÿ“ POINT ๐Ÿ“

โœ”๏ธ ํ”„๋กœ๊ทธ๋žจ์˜ ์•ˆ์ „์„ฑ์„ ์œ„ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ const๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. โœ”๏ธ

โœ”๏ธ ๊ฐ’ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ let์„ ์‚ฌ์šฉํ•œ๋‹ค. โœ”๏ธ

โœ”๏ธ var๋Š” ํ˜„๋Œ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๋” ์ด์ƒ ๊ถŒ์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค. โœ”๏ธ

 

 

๐Ÿ“‹ var, let, const ๋น„๊ตํ‘œ ๐Ÿ“‹

ํŠน์ง• var let const
์Šค์ฝ”ํ”„ ํ•จ์ˆ˜ ๋ ˆ๋ฒจ ๋ธ”๋ก ๋ ˆ๋ฒจ ๋ธ”๋ก ๋ ˆ๋ฒจ
์žฌํ• ๋‹น ๊ฐ€๋Šฅ ๊ฐ€๋Šฅ ๋ถˆ๊ฐ€๋Šฅ
์žฌ์„ ์–ธ ๊ฐ€๋Šฅ ๋ถˆ๊ฐ€๋Šฅ ๋ถˆ๊ฐ€๋Šฅ
ํ˜ธ์ด์ŠคํŒ… ๋ฐœ์ƒ (undefined) ๋ฐœ์ƒ (TDZ) ๋ฐœ์ƒ (TDZ)
์ดˆ๊ธฐ๊ฐ’ ํ•„์š” ์•„๋‹ˆ์˜ค ์•„๋‹ˆ์˜ค ์˜ˆ
์‚ฌ์šฉ ๊ถŒ์žฅ๋„ ์‚ฌ์šฉ ์ง€์–‘ ๊ฐ’ ๋ณ€๊ฒฝ ์‹œ ์‚ฌ์šฉ ๊ธฐ๋ณธ ์‚ฌ์šฉ