JavaScript의 변수에 대하여

  • 자바스크립트의 변수 선언은 var로만 가능했으나 ES6(2016)부터 let과 const가 추가 되었다.



var, let, const 차이점 5가지

  • 중복선언 가능 여부
  • 재할당 가능 여부
  • 변수 스코프 유효범위
  • 변수 호이스팅 방식
  • 전역객체 프로퍼티 여부



var

  • 중복 선언이 가능하다.
// 첫번째 변수 선언 + 초기화
var a = 10;
console.log(a);

// 두번째 변수 선언 + 초기화
var a = 20;
console.log(a);

// 세번째 변수 선언 + 초기화
var a = 30;
console.log(a);
  • var로 선언한 변수는 중복해서 선언(초기화)가 가능하다.
  • 이 경우 마지막에 할당된 값이 변수에 저장된다.
  • 초기화 없이 선언만 한 경우에는 선언문 자체가 무시된다.
  • 기존에 선언해둔 변수의 존재를 까먹고 값을 재할당하게 되는 등의 실수가 발생하기 쉽다.
  • Java나 Python 같은 언어에 익숙하다면 이게 뭔 쌉소린가 싶을수도 있다.



const, let

  • 중복 선언 불가능
//let 중복 선언
let a = 10;
let a = 20; //SyntaxError: Identifier 'a' has already been declared

//const 중복 선언
const b = 10;
const b = 20; //SyntaxError: Identifier 'b' has already been declared



var, let

  • 값의 재할당이 가능한 변수다.
var a = 10;
a = 20;
console.log(a); // 20

let b = 111;
b = 222;
console.log(b) // 222
  • var와 let은 변수를 선언하는 키워드다.
  • 변수 선언 및 초기화 이후에 반복해서 다른 값을 재할당 할 수 있다.



const

  • 값의 재할당이 불가능한 상수다.
const c = 111;
c = 222; // TypeError: Assignment to constant variable.
  • const는 처음 선언할 때 반드시 초기화(값 할당)를 해주어야 한다.

Leave a comment