목록
- 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
를 사용할 것을 권장합니다.