자바스크립트 변수 선언 방식 차이 정리

자바스크립트의 변수는 프로그래밍에서 데이터 저장소 및 조작의 기본 단위입니다. 변수의 올바른 사용은 프로그램의 품질과 성능을 크게 좌우합니다. 이번 포스팅에서는 자바스크립트에서 변수를 선언하는 다양한 방법과 이들 간의 차이점을 깊이 있게 살펴보겠습니다.

변수란 무엇인가?

변수는 프로그래밍에서 정보를 저장하기 위해 사용되는 메모리 공간입니다. 특정 이름으로 식별되는 이 공간에 데이터를 저장하고, 필요할 때 그 값을 재사용할 수 있습니다. 자바스크립트는 동적 타입 언어로, 변수의 타입을 선언할 필요 없이 언제든지 다른 종류의 값을 저장할 수 있습니다.

변수 선언 방법

자바스크립트에서 변수를 선언하는 방법은 크게 세 가지로 나뉩니다: var, let, const. 각각의 방법은 변수의 스코프와 재할당 가능성 측면에서 차이를 보입니다.

var: 전통적인 변수 선언

var는 자바스크립트에서 변수를 선언하는 가장 오래된 방법으로, 함수 스코프(function scope)를 지원합니다. 이는 변수가 선언된 함수 내에서만 유효하다는 뜻입니다.

  • 변수가 함수 외부에서 선언되면 전역 변수로扱아져 어디서든 접근 가능합니다.
  • 함수 내부에서 선언된 var 변수는 동일한 함수 내에서 어디서든 접근 가능하지만, 해당 함수 외부에서는 접근할 수 없습니다.
  • 중복 선언이 가능하여, 동일한 이름으로 변수를 여러 번 선언할 수 있습니다.

예를 들어:

function example() {
  var name = "홍길동"; 
  var name = "철수"; 
  console.log(name); // "철수"가 출력
}
example();

let: 블록 스코프 변수

let은 ES6(ECMAScript 2015)에서 도입된 변수 선언 방식으로, 블록 스코프(block scope)를 지원합니다. 이는 변수가 선언된 {} 블록 내에서만 유효하다는 것을 의미합니다. 블록 밖에서는 접근할 수 없습니다.

  • let으로 선언된 변수는 중복 선언이 불가능합니다.
  • 재할당이 가능하여, 변수 값의 변경이 가능합니다.
  • 변수에 접근하기 전에는 ReferenceError가 발생하므로, 변수를 선언하기 전에 사용하는 것은 불가능합니다.

예시를 살펴보겠습니다:

function example() {
  let name = "홍길동"; 
  if (true) {
   let name = "철수"; 
   console.log(name); // "철수"가 출력
  }
  console.log(name); // "홍길동"이 출력
}
example();

const: 상수 선언

const 역시 ES6에서 도입된 키워드로, 상수를 선언할 때 사용됩니다. 한번 값을 할당하면 변경할 수 없는 변수를 생성합니다.

  • const로 선언된 변수는 반드시 선언과 동시에 초기화해야 하며, 이후 재할당은 불가능합니다.
  • 블록 스코프를 지원하며, 선언된 블록 내에서만 유효합니다.
  • 중복 선언이 불가능합니다.

예를 들어:

function example() {
  const name = "홍길동"; 
  // name = "철수"; // TypeError: Assignment to constant variable.
}
example();

변수 호이스팅(Hoisting)

자바스크립트에서 변수는 선언하기 전에 사용할 수 있는 현상을 호이스팅이라고 합니다. var로 선언된 변수는 선언 위치에 상관없이 최상단으로 끌어올려지며, 이 경우 변수의 값은 undefined로 초기화됩니다. 그러나 let과 const는 호이스팅되지만, 선언 전에 접근하려고 하면 ReferenceError가 발생합니다.

예시로 호이스팅을 보여드리겠습니다:

console.log(x); // undefined
var x = 5;
console.log(x); // 5
console.log(y); // ReferenceError: Cannot access 'y' before initialization
let y = 10;

어떤 변수를 선택해야 할까?

일반적으로 변수를 선언할 때는 const를 기본으로 사용하고, 값이 변경될 필요가 있을 경우에만 let을 사용하는 것이 좋습니다. var는 오래된 방식이므로 현재는 사용을 권장하지 않습니다. 변수 선언 시 const와 let을 사용하면 코드의 안전성을 높이고, 예상치 못한 변수 수정으로 인한 오류를 방지할 수 있습니다.

종합 정리

자바스크립트에서 변수를 선언하는 방법은 var, let, const 세 가지입니다. 각각의 선언 방식은 변수의 스코프와 재할당 가능성에 차이를 보이며, 이를 이해하는 것은 코드의 품질을 높이는 데 매우 중요합니다. 여러분이 자바스크립트 코드를 작성할 때 이 정보를 잘 활용하시길 바랍니다.

질문 FAQ

자바스크립트에서 변수를 선언하는 방법은 무엇인가요?

자바스크립트에서는 변수를 선언하는 데 주로 var, let, const의 세 가지 방법을 사용합니다. 각각의 방법은 변수의 범위와 재할당 가능성에서 차이를 보입니다.

var와 let, const의 차이점은 무엇인가요?

var는 함수 스코프를 가지며, 중복 선언이 가능합니다. 반면 let과 const는 블록 스코프를 가지며, 중복 선언이 불가능합니다. const는 한 번 할당된 값이 변경될 수 없습니다.

변수 호이스팅이란 무엇인가요?

호이스팅은 자바스크립트에서 변수를 선언하기 전에 사용할 수 있는 현상입니다. var로 선언된 변수는 undefined로 초기화되며, let과 const는 선언 전에 접근할 경우 ReferenceError가 발생합니다.

어떤 변수를 사용하는 것이 바람직한가요?

일반적으로 const를 기본으로 사용하고, 필요할 경우 let을 선택하는 것이 좋습니다. var는 오래된 방식이므로 현재는 사용을 지양하는 것이 좋습니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤