F-Lab
🚀
취업/이직이 고민이신가요? 합격에 필요한 모든 것을 도와드립니다.

자바스크립트의 변수 선언과 초기화: const, let, var의 차이점

writer_thumbnail

F-Lab : 상위 1% 개발자들의 멘토링

AI가 제공하는 얕고 넓은 지식을 위한 짤막한 글입니다!



자바스크립트 변수 선언의 기본 이해

자바스크립트에서 변수를 선언하는 방법에는 var, let, const가 있습니다. 각각의 키워드는 선언된 변수의 특성과 동작 방식을 결정합니다.

var는 ES6 이전부터 사용되던 변수 선언 방식으로, 함수 스코프를 가지며, 선언과 동시에 undefined로 초기화됩니다. 이로 인해 호이스팅(hoisting)이라는 현상이 발생합니다.

let과 const는 ES6에서 도입된 변수 선언 방식으로, 블록 스코프를 가지며, 선언 전에 접근하려고 하면 '템퍼러리 데드존(Temporal Dead Zone, TDZ)'에 의해 에러가 발생합니다.

왜냐하면 let과 const는 선언과 초기화가 분리되어 있으며, 초기화가 이루어지기 전에는 접근할 수 없도록 설계되었기 때문입니다.

이러한 차이점은 코드의 가독성과 안정성을 높이는 데 중요한 역할을 합니다.



var와 let, const의 차이점

var는 선언과 동시에 undefined로 초기화되며, 함수 스코프를 가집니다. 이로 인해 코드 상단에서 선언된 것처럼 동작하는 호이스팅 현상이 발생합니다.

let과 const는 블록 스코프를 가지며, 선언 전에 접근하려고 하면 TDZ에 의해 에러가 발생합니다. 이는 선언과 초기화가 분리되어 있기 때문입니다.

예를 들어, 다음 코드를 살펴보겠습니다:

function example() {
    console.log(a); // undefined
    var a = 10;
    console.log(b); // ReferenceError
    let b = 20;
}

위 코드에서 var로 선언된 변수는 undefined로 초기화되지만, let으로 선언된 변수는 초기화 전에 접근할 수 없습니다.

왜냐하면 var는 선언과 초기화가 동시에 이루어지지만, let은 선언과 초기화가 분리되어 있기 때문입니다.

이러한 차이는 코드의 예측 가능성과 디버깅 용이성을 높이는 데 기여합니다.



const와 let의 차이점

const는 상수 선언을 위해 사용되며, 선언과 동시에 초기화가 이루어져야 합니다. 이후 값을 변경할 수 없습니다.

let은 변수 선언을 위해 사용되며, 선언 후 값을 변경할 수 있습니다. 이는 const와의 주요 차이점입니다.

예를 들어, 다음 코드를 살펴보겠습니다:

const PI = 3.14;
let radius = 10;

radius = 15; // 가능
PI = 3.14159; // TypeError

위 코드에서 const로 선언된 변수는 값을 변경하려고 하면 에러가 발생하지만, let으로 선언된 변수는 값을 변경할 수 있습니다.

왜냐하면 const는 불변성을 보장하기 위해 설계된 키워드이기 때문입니다.

이러한 특성은 코드의 안정성과 의도를 명확히 하는 데 도움을 줍니다.



호이스팅과 TDZ의 이해

호이스팅은 변수 선언이 코드의 상단으로 끌어올려지는 현상을 의미합니다. var, let, const 모두 호이스팅이 발생하지만, 동작 방식이 다릅니다.

var는 선언과 초기화가 동시에 이루어지므로, 선언 전에 접근해도 undefined로 초기화된 값을 반환합니다.

let과 const는 선언과 초기화가 분리되어 있으며, 초기화 전에 접근하려고 하면 TDZ에 의해 에러가 발생합니다.

예를 들어, 다음 코드를 살펴보겠습니다:

console.log(a); // undefined
var a = 10;

console.log(b); // ReferenceError
let b = 20;

위 코드에서 var로 선언된 변수는 undefined로 초기화되지만, let으로 선언된 변수는 초기화 전에 접근할 수 없습니다.

왜냐하면 let과 const는 TDZ를 통해 선언 전에 접근을 방지하도록 설계되었기 때문입니다.



변수 선언의 올바른 사용법

변수를 선언할 때는 의도와 용도에 따라 적절한 키워드를 선택하는 것이 중요합니다. 일반적으로 다음과 같은 가이드라인을 따를 수 있습니다:

1. 변경되지 않는 값은 const를 사용합니다.

2. 변경될 가능성이 있는 값은 let을 사용합니다.

3. var는 사용하지 않는 것이 좋습니다.

예를 들어, 다음과 같이 코드를 작성할 수 있습니다:

const MAX_USERS = 100;
let currentUsers = 0;

if (currentUsers < MAX_USERS) {
    currentUsers++;
}

위 코드에서 const와 let을 적절히 사용하여 코드의 안정성과 가독성을 높일 수 있습니다.

왜냐하면 const와 let은 각각의 용도에 맞게 설계된 키워드이기 때문입니다.



결론: 변수 선언의 중요성

자바스크립트에서 변수 선언은 코드의 안정성과 가독성을 결정짓는 중요한 요소입니다. var, let, const의 차이를 이해하고 적절히 사용하는 것이 중요합니다.

var는 호이스팅과 함수 스코프의 특성으로 인해 예측하기 어려운 동작을 유발할 수 있습니다. 따라서 let과 const를 사용하는 것이 권장됩니다.

let과 const는 블록 스코프와 TDZ를 통해 코드의 안정성과 예측 가능성을 높입니다. const는 불변성을 보장하며, let은 변경 가능한 값을 선언할 때 사용됩니다.

왜냐하면 이러한 특성은 코드의 의도를 명확히 하고, 디버깅을 용이하게 하기 때문입니다.

따라서 변수 선언 시 의도와 용도에 따라 적절한 키워드를 선택하는 것이 중요합니다.

ⓒ F-Lab & Company

이 컨텐츠는 F-Lab의 고유 자산으로 상업적인 목적의 복사 및 배포를 금합니다.

조회수
logo
copyright © F-Lab & Company 2026