React, Javascript의 변수 var, let, const는 무엇일까?
변수란 무엇일까?
자바를 배우면서 알게 된 변수는 어떤 값을 담고 있는 공간 혹은 주소 값을 담고 있는 공간이었다.
int a = 10; String b = "변수";
이렇게 변수를 바로 선언한 뒤에 재할당도 가능했다.
물론, final을 붙여서 재할당이 불가능한 변수도 만들 수 있었다.
final String b = "재할당불가변수";
자바스크립트를 깊게 배우지 않았던 나는 리액트로 넘어오면서 처음 let과 const를 봤다.
자바스크립트를 할 때는 var이 변수라는 것은 봤지만 let과 const는 그럼 무엇일까? 어떤 차이가 있길래 나눠서 사용하는 것일까?
찾아보니 답은 이것이다.
var는 선언한 뒤 할당이 가능하고, 재할당 또한 가능하다. 하지만 함수 안에서 선언된 지역변수는 함수 밖으로 나왔을 경우에 사용이 불가능하다.
function method{
var a = 10;
print("a = " + a); // a = 10
}
print("a = " + a); // undefined
코드로 보면 이렇게 볼 수 있다. 함수 안에서 선언된 a는 밖에서 호출되는 순간 오류를 갖게 된다.
그럼 let과 const는 var과 어떤 차이점이 있을까?
- 재선언이 불가능하다.
let a = 10;
let a = 20; // error
const b = 10;
const b = 20; // error
코드로 보는 바와 같이 이미 선언된 변수를 재선언 하는 것이 불가능하다는 점이 있다. 마치 final을 보는 듯하다. 하지만, let은 재선언은 불가능하지만 재할당은 가능하다.
let a = 10;
a = 20;
const b = 10;
b = 20; // error
let c;
c = 10;
const d; // error
let은 먼저 a에 10을 선언해둔 뒤 20으로 재할당이 가능하다. const는 불가능하다.
그리고 let은 미리 선언 후 할당 또한 가능하지만 const는 선언할 때 할당까지 해줘야 한다.
이렇게 오늘은 리액트를 공부하면서 알게 된 변수의 종류와 특징에 대해서 말했다. 국비 학원을 다닌 지 만 4개월이 되어가고 있지만 아직도 모르는 것이 한참 많다는 것을 느낀다. 포스팅해야 할 것들이 넘쳐나는데 그 시간을 빼지 못해서 채워나가지 못하는 점이 아쉽다. 확실히 포스팅의 힘이 크다고 느끼고 있다. 그냥 흘러가는 것들은 내 머릿속에 남아있는 게 생각보다 없기 때문이다. 포스팅을 해두면 의외로 머릿속에 많이 남아있다.
오늘도 공부 내일도 공부 한 발씩 가면 조금 개발자스러워지지 않을까?