변수는 '데이터의 저장소'이다.
사전적 의미로는 '변할 수 있는' 또는 '가변적인' 정도로 해석이 가능하다. 즉, 변수는 변할 수 있다는 것을 의미한다.
변수에 들어가는 데이터의 종류로는 String, Object, Array 등 타입이 가능하다. 변수는 가장 기초적인 개념이라 그냥 넘어가기 쉽지만, JavaScript에 대해 깊게 알아갈수록 변수의 동작 원리와 관련된 어려운 개념을 아래와 같이 정리해 보았다.
변수에는 var, let, const를 변수 선언을 위해 사용한다. 여기서 var은 ES6 이전의 유일한 변수 선언 방식이었지만 이후에 var의 단점을 보완하기 위해 let과 const가 추가 되었다.
var, let, const 차이점
✅ var
var은 중복선언이 가능한 변수이다. var로 선언한 변수는 재선언이 가능하며 마지막으로 할당된 값이 변수에 저장된다.
var a = 1;
console.log(a); // 1
var a = 10;
console.log(a); // 10
var a;
console.log(a); // 10
var은 값의 '재할당'이 가능한 변수이다. 즉, 반복해서 변수에 다른 값으로 재할당 하는 점이 편리하지만 복잡한 코드를 쓸 때는 이전에 선언해두었던 변수를 잊고 값을 재할당하게 되면 변수가 다시 덮어 씌어지는 경우가 있으니 유의해야 한다. 이러한 단점을 보완하고자 'let'과 'const'가 나오게 된 것이다.
✅ let
let은 중복 선언이 불가능하지만 값의 재할당은 가능하다.
let hello = 100; // 최초 선언
hello = 200; // 값의 재할당
console.log(hello); // 200
✅ const
const는 변수를 중복해서 선언할 수 없다.
// 첫번째 선언
const hello = 1;
// 중복 선언
const hello = 2;
// Uncaught SyntaxError: Identifier 'hello' has already been declared
위와 같이 두 번째 줄에 이름이 같은 변수를 선언하는 순간 Syntax Error가 발생한다.또한, var과 let은 값을 '재할당'할 수 있는 변수인 반면에 const는 값을 한 번 설정하고 나면, 다른 값을 다시 할당할 수 없다.
// 선언단계
const hello = 1;
// 할당단계
hello = 2;
// Uncaught TypeError: Assignment to constant variable.
첫 번째 선언한 hello에 '2'를 재할당하려고 하면 Type Error가 발생한다
※주의: const는 선언과 할당을 동시에 해주어야 한다. 만약 값을 할당하지 않고 상수만 선언해버리면 Syntax Error가 발생한다.
그 외 변수의 특징들
let apple = "맛있다.";
여기서 apple이라는 이름은 변수가 아니라, 식별자(Identifier)이다. 식별자는 데이터를 식별하는데 쓰는 '이름'
즉, 변수명을 의미한다. 변수는 데이터가 담기는 '공간'을 의미하기 때문에 둘은 정말 엄밀히 따지면 다르다고 할 수 있다. 그냥 차이 정도만 인지하였다.
✅ 변수에는 다양한 타입이 있다.
ex) Number, String, Boolean, Array, Object, Undefined, 함수(function)
'Language > JavaScript' 카테고리의 다른 글
브라우저 이벤트(Event) (0) | 2023.12.04 |
---|---|
프로토타입(Prototype) (0) | 2023.09.09 |
Class(생성자 함수, 객체 생성 방식) (0) | 2023.09.02 |
조건문(if, if...else, switch) (0) | 2023.08.31 |
반복문(for, while, do...while) (2) | 2023.08.29 |