자바스크립트는 동적 타입 언어로, 변수 선언에 있어서 유연함을 제공합니다. 이러한 유연함 속에서 var, let, const라는 세 가지 키워드는 각기 다른 특성을 지니고 있습니다. 최근의 모던 자바스크립트 개발에서는 var의 사용을 지양하고 let과 const를 선호하는 추세입니다. 이 글에서는 이들 키워드의 차이점을 살펴보고, 왜 현대 자바스크립트 개발에서 var보다 let과 const를 더 많이 사용하는지에 대해 설명하겠습니다.
var는 자바스크립트에서 가장 오래된 변수 선언 키워드입니다. 주요 특징은 다음과 같습니다.
var로 선언된 변수는 함수 레벨 스코프를 가집니다. 즉, 함수 내에서 선언되면 함수 전체에서 접근 가능합니다.
if (true) {
var exampleVar = "안녕하세요";
}
console.log(exampleVar); // "안녕하세요"
JavaScriptvar 변수는 선언 전에 사용할 수 있습니다. 이는 코드의 가독성과 유지보수를 어렵게 만듭니다.
console.log(exampleHoist); // undefined
var exampleHoist = "호이스팅 예시";
JavaScript같은 이름의 변수를 여러 번 선언할 수 있습니다.
var exampleVar = "첫 번째 선언";
var exampleVar = "두 번째 선언";
console.log(exampleVar); // "두 번째 선언"
JavaScript✔️이러한 특성 때문에, var는 예측하기 어려운 버그를 발생시킬 수 있으며, 현대의 모던 자바스크립트 개발에서는 그 사용을 지양하는 추세입니다.
ES6(ES2015)에서 도입된 let은 var의 대안으로 제시됩니다. let의 주요 특징은 다음과 같습니다.
let으로 선언된 변수는 블록 레벨 스코프를 가집니다. 즉, 선언된 블록(중괄호 {}로 감싸진 구역) 내에서만 유효합니다.
if (true) {
let exampleLet = "안녕하세요";
console.log(exampleLet); // "안녕하세요"
}
// console.log(exampleLet); // ReferenceError: exampleLet is not defined
JavaScriptlet으로 선언된 변수는 선언 전에 접근할 수 없습니다. 이는 코드의 안정성을 높여줍니다.
// console.log(exampleLetHoist); // ReferenceError: Cannot access 'exampleLetHoist' before initialization
let exampleLetHoist = "호이스팅 방지 예시";
JavaScript같은 스코프 내에서 동일한 이름으로 변수를 재선언할 수 없습니다.
let exampleLet = "첫 번째 선언";
// let exampleLet = "재선언 시도"; // SyntaxError: Identifier 'exampleLet' has already been declared
JavaScript✔️let은 더 엄격하고 예측 가능한 코드 작성을 가능하게 합니다.
또한, ES6에서 const도 도입되었습니다. const는 다음과 같은 특징을 가집니다.
const로 선언된 변수는 블록 레벨 스코프를 가집니다. 즉, 선언된 블록 내에서만 유효합니다.
if (true) {
const exampleBlockScope = "블록 스코프 예시";
console.log(exampleBlockScope); // "블록 스코프 예시"
}
// console.log(exampleBlockScope); // ReferenceError: exampleBlockScope is not defined
JavaScript한 번 선언된 값은 변경할 수 없습니다.
const exampleConst = "상수 선언";
// exampleConst = "재할당 시도"; // TypeError: Assignment to constant variable.
JavaScriptconst는 상수(constant)를 나타내는 데 주로 사용됩니다. 값이 변경되지 않을 변수에 사용하는 것이 좋습니다.
const PI = 3.14;
console.log(PI); // 3.14
// PI = 3.14159; // TypeError: Assignment to constant variable.
JavaScriptvar, let, const는 자바스크립트에서 변수를 선언하는 세 가지 방법입니다. 각각의 스코프, 호이스팅, 재선언 가능성에서 차이가 있으며, 모던 자바스크립트 개발에서는 var의 한계를 극복하기 위해 let과 const 사용을 권장합니다. const는 값이 변하지 않을 것이 확실할 때, let은 그렇지 않을 때 사용하는 것이 좋습니다. 이러한 관행은 코드의 안정성과 가독성을 향상시키는 데 도움이 됩니다.
소개 자바에서 Set은 중복을 허용하지 않는 데이터 집합을 의미합니다. List와 달리 동일한 요소를 여러 번…
해시(Hash)란 무엇인가? 해시(Hash)는 자바 프로그래밍에서 빠르고 효율적인 데이터 저장 및 검색을 위한 핵심적인 개념입니다. 이…
LinkedList란 무엇인가? LinkedList는 자바에서 유용하게 사용되는 자료구조 중 하나로, 연결 리스트 방식을 이용하여 데이터를 관리하는…
ArrayList란 무엇인가? ArrayList는 자바에서 가장 널리 사용되는 컬렉션 중 하나로, 가변 크기의 배열을 구현한 클래스입니다.…
제네릭(Generic)이란? 자바 제네릭은 코드의 재사용성을 높이고 타입 안전성을 보장하는 중요한 개념입니다. 이 블로그 글에서는 자바…