Language/JS

[Javascript] var, let, const 차이 / 자바스크립트 변수 상수

개발하는 사막여우 2021. 1. 5. 14:47
반응형
👀 변수, 상수 속성 종류 (var, let, const) 👀
1. var(변수) : 재선언, 재할당 가능
2. let(변수) : 재할당 가능
3. const(상수) : 재선언, 재할당 불가

프로그래밍에서는 어떤 값을 생성할 때 변수상수로 나누어 사용하게끔 권장됩니다.

Javascript는 es5까지는 var 하나만을 사용하여 따로 차이를 두지는 않았었지만, es6부터 let과 const가 나옴으로써 변수와 상수를 구분할 수 있게 되었습니다.

 

변수(variable)값이 변할 수 있는 statement를 의미하고, 상수(constant)한번 초기화된 값이 변할 수 없는 statement를 의미합니다.

Javascript에서 사용할 수 있는 3가지 statement를 위의 변수 / 상수 개념으로 나누자면, 

초기화 후 값을 변경시킬 수 있는 var과 let은 변수에 속하고, 값을 변경시킬 수 없는 const는 상수에 속합니다.

 

그럼 var과 let은 동일한 거 아니냐? 왜 나눠진 것이냐? 하실 수 있는데,

바로 var은 function-scope & global-scope이고, let과 const는 block-scope이기 때문입니다.

간단하게 말해서 var함수 & 전역 단위로 사용하기 위한 statement이고, let과 const대괄호{} 단위로 사용하기 위한 statement인 것입니다.

 

1. var

  • 선언 후 초기화 가능
  • 재선언 가능
  • 최초 초기화 후 값 변경 가능
  • function-scoped(함수 단위), globally-scoped(전역 단위)로 선언됨
// 값 변경 가능!
var a = 10;
a = 99;
console.log("a: "+a);
// > a: 99

// 선언과 초기화 따로따로 가능!
var d;
d = 100;
console.log("d: "+d);
// > d: 100

 

2. let

  • 선언 후 초기화 가능
  • 최초 초기화 후 값 변경 가능
  • block-scoped(블록 단위)로 선언됨
// 값 변경 가능
let b = 10;
b = 99;
console.log("b: "+b);
// > b: 99

// 선언과 초기화 따로따로 가능!
let e;
e = 100
console.log("e: "+e);
// > e: 100

 

3. const

  • 상수 선언시 사용
  • 선언과 동시에 초기화 해야함
  • 최초 초기화 후 값 변경 불가능
  • block-scoped(블록단위)로 선언됨
// 값 변경 불가능!
const c = 10;
c = 99;
console.log("c: "+c);
// > TypeError: Assignment to constant variable

// 선언 및 초기화 구분 불가능!
const f;
f = 100;
console.log("f: "+f);
// > SyntaxError: Missing initializer in const declaration

 

 

 

<참고>

developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var

developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let

developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const

mygumi.tistory.com/130

 

반응형