자바스크립트는 동적 타입 언어로, 변수 선언에 있어서 유연함을 제공합니다. 이러한 유연함 속에서 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은 그렇지 않을 때 사용하는 것이 좋습니다. 이러한 관행은 코드의 안정성과 가독성을 향상시키는 데 도움이 됩니다.
컴포넌트 스캔이란? 컴포넌트 스캔(Component Scan)은 스프링 프레임워크가 특정 패키지를 탐색하면서, 스캔 대상에 해당하는 클래스를 찾아…
스프링 빈이란? 스프링 빈(Spring Bean)은 스프링 IoC(Inversion of Control) 컨테이너가 관리하는 자바 객체를 의미합니다. 간단히…
스프링 컨테이너(Spring Container)란? 스프링 컨테이너는 스프링 프레임워크에서 가장 핵심적인 부분으로, IoC(Inversion of Control) 개념을 기반으로…
Queue란 무엇인가? Java에서 Queue는 데이터 구조의 일종으로, 데이터를 선입선출(FIFO, First-In-First-Out) 방식으로 처리합니다. 이 글에서는 Queue의…
Stack이란 무엇인가? Java에서 Stack은 자료구조의 한 종류로, 데이터를 순서대로 쌓아 올리는 형태로 운영됩니다. 컴퓨터 과학에서…
소개 자바에서 Map 인터페이스는 키(Key)와 값(Value)의 쌍을 저장하는 자료구조입니다. 이는 연관 배열이라고도 불리며, 각 키는…