👀 변수, 상수 속성 종류 (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
'Language > JS' 카테고리의 다른 글
[Javascript] 자바스크립트 문자열 뒤집기 (0) | 2021.06.15 |
---|---|
[Javascript] 디바운싱과 쓰로틀링 / 연속 이벤트 제어 (0) | 2021.06.08 |
[Javascript] Map 사용법 (0) | 2021.06.08 |
[Javascript] 일반 함수 vs 익명 함수 (4) | 2021.05.28 |
[Javascript] for 반복문 종류 ( for / for-in / for-of ) (0) | 2021.05.10 |