자바스크립트_Javascript

Javascript: 변수 Variable var let const

coding-abc.tistory.com 2025. 8. 12. 11:00
반응형

자바스크립트에서 **변수(variable)**는 데이터를 저장하고 참조하는 데 사용되는 컨테이너입니다. 변수를 사용하면 데이터를 메모리에 저장하고, 나중에 해당 데이터에 이름을 통해 접근할 수 있습니다.

 

변수 선언 및 초기화

자바스크립트에서 변수를 선언하는 방법은 주로 var, let, const 세 가지 키워드를 사용합니다.

var

var는 초기 자바스크립트에서 변수를 선언하는 데 사용되었던 키워드입니다.

  • 재선언 및 재할당 가능: 같은 이름의 변수를 여러 번 선언할 수 있고, 값을 자유롭게 변경할 수 있습니다.
  • 함수 스코프(Function Scope): var로 선언된 변수는 자신이 선언된 함수 내에서만 유효합니다. 함수 밖에서는 접근할 수 없습니다.
var name = "Alice";
console.log(name); // "Alice"

var name = "Bob"; // 재선언 가능
console.log(name); // "Bob"

name = "Charlie"; // 재할당 가능
console.log(name); // "Charlie"

let

let은 ES6(ECMAScript 2015)부터 도입된 키워드로, var의 단점을 보완하기 위해 만들어졌습니다.

  • 재선언 불가능, 재할당 가능: 한 번 선언된 변수는 다시 선언할 수 없지만, 값은 변경할 수 있습니다.
  • 블록 스코프(Block Scope): let으로 선언된 변수는 {}(중괄호)로 둘러싸인 블록 내에서만 유효합니다.
let age = 30;
console.log(age); // 30

// let age = 40; // SyntaxError: Identifier 'age' has already been declared (재선언 불가능)

age = 40; // 재할당 가능
console.log(age); // 40

if (true) {
  let innerAge = 50;
  console.log(innerAge); // 50
}
// console.log(innerAge); // ReferenceError: innerAge is not defined (블록 밖에서 접근 불가능)

const

const도 let과 함께 ES6에서 도입되었으며, **상수(constant)**를 선언할 때 사용합니다.

  • 재선언 및 재할당 불가능: 변수 선언과 동시에 초기화해야 하며, 선언 이후에는 값과 이름 모두 변경할 수 없습니다.
  • 블록 스코프(Block Scope): let과 동일하게 블록 스코프를 가집니다.
const PI = 3.14159;
console.log(PI); // 3.14159

// const PI = 3.14; // SyntaxError (재선언 불가능)
// PI = 3.14; // TypeError: Assignment to constant variable (재할당 불가능)

const person = { name: "David" };
person.name = "Eve"; // 객체 내부의 속성은 변경 가능
console.log(person.name); // "Eve"

var, let, const의 차이점 요약

특징 var let const
재선언 ⭕️ 가능 ❌ 불가능 ❌ 불가능
재할당 ⭕️ 가능 ⭕️ 가능 ❌ 불가능
스코프 함수 스코프 블록 스코프 블록 스코프
용도 (구식) 값 변경이 필요한 변수 값 변경이 불가능한 상수
 

현대 자바스크립트 개발에서는 var 사용을 지양하고, 기본적으로 const를 사용하여 상수를 선언하며, 재할당이 필요한 경우에만 let을 사용하는 것을 권장합니다.

반응형