- Published on
Const, Let, Var의 차이점
- Authors
- Name
- Easyoon
[#Javascript] Const, Let, Var의 차이점
원문: [Javascript] Const, Let, Var의 차이점
OKKY: https://okky.kr/article/753205
목록
Javascript의 변수
Const에 대해서
Let에 대해서
Var에 대해서
정리
1. Javascript의 변수
Javascript에는 변수를 선언하는 키워드 const, let, var가 있습니다. 이 키워드들은 아래에 대해 차이가 있습니다.
초기값
중복 된 값 할당
호출 범위
우선 const, let, var 모든 변수들은 아래와 같이 ,(쉼표)로 구분하여 동시에 여러 변수를 정의 할 수 있습니다.
const category= "header",
key= "content-Type",
value= "application/json";
2. Const에 대해서
const는 값이 변하지 않는 변수를 선언하는 키워드입니다. const는 반드시 초기 값을 설정을 해주어야 하며, 선언 한 변수에 대해 나중에 값을 다시 할당 할 수 없습니다.
const에서 선언한 변수에 값을 다시 할당하는 경우에는 다음과 같은 오류 ( TypeError)가 발생합니다.
const key = "content-Type";
key = "appId";
// Result => TypeError: invalid assignment to const 'key'
따라서 변수에 값을 다시 할당 할 필요가 없는 경우에는, const 키워드로 변수 선언 할 것을 권장합니다.
루프 등의 반복 도중에 특정 변수가 참조하는 값을 바꿔야 할 때가 있습니다. 그런 경우에는 변수에 다시 할당 할 수 있는 let키워드로 선언 합니다.
3. Let에 대해서
let는 초기 값을 지정하지 않아도 됩니다. 초기 값을 지정하지 않는 경우, undefined 값으로 초기화됩니다.
**let** key;
// `key` is initialized `undefined`
let이 선언 된 key라는 변수에 "content-Type"이라는 문자열을 대입하고 있습니다.
**let** key;
key = "content-type";
4. Var에 대해서
var 키워드는 초기 값을 선언하지 않아도 되며, 값을 재할당을 해도 된다는 점에서 let과 유사합니다. 그러나, var키워드는 같은 이름의 변수를 다시 정의 할 수 있습니다.
let과 const는 같은 이름의 변수를 정의할 수 없으며, 다음과 같은 구문 오류 ( SyntaxError)가 발생합니다. 따라서 실수로 변수를 이중으로 정의하는 실수를 방지 할 수 있습니다.
**let** key;
**let** key; // => SyntaxError: redeclaration of let key
한편, var의 경우에는 같은 이름의 변수를 다시 정의 할 수 있습니다. 이것은 실수로 같은 변수 이름으로 정의해도 오류가 나지 않으며, 이전에 선언했던 값을 덮어 버립니다.
**var** x = 1;
**var** x = 2;
// x is 2
let은 변수를 선언하기 전에 그 변수를 참조하면 ReferenceError가 발생합니다.
console.log(x);
//ReferenceError: can't access lexical declaration `x'
before initialization
**let** x = 1;
한편 var는 변수를 선언하기 전에 그 변수를 참조해도 undefined값이 할당 됩니다.
console.log(x); // => undefined
**var** x = 1;
5. 정리
JavaScript의 변수를 선언하는 키워드로 const, let, var에 대해 정리하였습니다.
const는 값을 재할당 할 수 없는 변수를 선언 할 때 쓰입니다.
let, var은 재할당 할 수 있는 변수를 선언 할 수 있으며, 초기값을 선언하지 않아도 됩니다.
var의 경우만 같은 값을 중복 선언 할 수 있습니다.
const는 재할당이 불가능한 변수를 정의하는 키워드입니다. 재할당을 금지함으로써 실수로 다른 값을 할당하여 발생하는 버그를 줄일 수 있습니다.
따라서, 변수를 선언하는 경우에는 먼저 const로 정의 할 수 없는지를 검토 후, 불가능한 경우 let를 사용할 것을 권장합니다.