본문 바로가기

카테고리 없음

JavaScript 변수 선언: const vs let vs var

JavaScript 개발자들 사이에서 가장 토론이 활발한 주제 중 하나인 변수 선언에 대한 키워드인 const, let, 그리고 옛날부터 익숙한 var에 대해 알아보겠습니다. 이 글을 통해 여러분은 변수 선언에 대한 깊은 이해를 얻을 뿐만 아니라, 코드를 작성할 때 발생할 수 있는 다양한 상황에 대처할 수 있는 지식을 쌓게 될 것입니다.

 

const vs let vs var

var: 과거의 황금 자유

한때 JavaScript에서는 변수를 선언하는 유일한 방법으로 var을 사용했습니다. 그러나 이것은 자유분방한 동시에 어려움을 초래했습니다. 변수의 스코프가 함수 단위로 제한되어 있어서, 예측할 수 없는 문제들이 발생하기도 했습니다.

function varExample() {
  if (true) {
    var x = 10;
  }
  console.log(x); // 10, 블록 스코프가 아니라 함수 스코프
}

 

var은 호이스팅이 일어나기 때문에 변수가 선언되기 전에 참조할 수 있는데, 이는 코드를 이해하기 어렵게 만들 수 있습니다. 적절한 사용을 위해선 신중한 고려가 필요합니다.

let: 블록 스코프의 등장

ES6에서 등장한 letvar의 한계를 극복하기 위해 탄생했습니다. 블록 스코프를 가지기 때문에, 변수가 선언된 블록 내에서만 유효하다는 특징이 있습니다.

 

function letExample() {
  if (true) {
    let y = 20;
    console.log(y); // 20, 블록 스코프
  }
  // console.log(y); // ReferenceError: y is not defined
}

 

let은 호이스팅이 일어나긴 하지만, 선언과 초기화가 동시에 이루어지기 때문에 일부러 미리 초기화하지 않으면 변수를 사용할 수 없습니다.

const: 불변의 가호

const는 상수를 선언하는 데 사용되며, 선언과 동시에 초기화되어야 합니다. 재할당이 불가능하지만, 객체나 배열과 같은 복합 자료형의 내부 속성이나 요소는 수정이 가능합니다.

const z = 30;
// z = 40; // Error: Assignment to constant variable

const myArray = [1, 2, 3];
myArray.push(4); // 가능

 

const는 코드의 가독성을 높여주고, 상수의 의미를 명확히 전달할 수 있습니다. 다만, 객체나 배열을 const로 선언할 때에는 주의가 필요합니다.

 

사진: Unsplash 의 Joan Gamell

 

어떤 키워드를 선택할까?

코드를 작성할 때 어떤 키워드를 선택해야 할까요? 일반적으로는 const를 기본으로 사용하되, 값이 변경되어야 하는 경우에 한정해 let을 활용합니다. var는 오래된 표현 방식이므로 최신 JavaScript에서는 피하는 것이 좋습니다.

여러분이 선택한 키워드에 따라 코드의 가독성과 유지보수성이 크게 달라질 수 있습니다. 그러므로 각 상황에 맞게 적절히 선택하여 사용하는 것이 중요합니다.

이렇듯, JavaScript 변수 선언 키워드에 대한 이야기를 마치겠습니다. 여러분의 코드가 더욱 명확하고 유연해지길 바라며, 다양한 상황에서 효과적으로 활용하시기를 기대합니다. 자바스크립트의 세계는 끝없는 모험이기에, 새로운 도전을 두려워하지 않고 맞이해보세요!