변수 선언 시 var, let, const의 차이점

정성준 (Seongjun Chung)·2021년 5월 11일
0

JS Dev

목록 보기
1/7
post-thumbnail

공부 중에 나름 좀 궁금한 내용이 생겨 공부하면서 정리해본다.
자바스크립트가 ES6로 업데이트가 되면서 편리한 기능들이 많이 업데이트 되었다. 그 중 기존 ES5에서 변수 선언 시 var로만 가능했던 것들이 ES6가 되면서 let과 const로 선언이 가능해졌다.


"그럼 var 는 뭐가 불편한데?"

그럼 처음 생각나는 질문이 이거다. 간단하게 예를 보자.

if (true) {
  var a = '돈가방을 갖고 튀어라.';
}
console.log(a); // 돈가방을 갖고 튀어라.

위와 같이 ES5의 var에서는 코드블록 스코프 안에 선언된 변수도 외부에서 접근이 가능했다는 점이다. 처음 코딩을 JS로 시작했던게 아니여서 이게 얼마나 불편했을진 모르지만, 다들 엄청 불편했다고 한다.

let, const 의 등장

그럼 얘네는 어떻게 쓰이는지 예로 보자.

if (true) {
  const b = '치리치리 뱅뱅';
}
console.log(b); // ReferenceError: b is not defined

이 처럼, 블록 스코프 안에서 let으로 선언된 변수는 외부에서 접근이 불가능하다. 이렇게되면 추후에 일어날 수 있는 변수 중복선언에 대한 오류를 해결할 수 있을 것 같다.

"아니 그럼 const는 뭔데?"

라는 질문이라면 let과 const를 비교해서 실험해보자.

const a = 0;
a = 1;  // Error 발생

let b = 0;
b = 1;  // 1

const c;  // Error 발생

위 처럼 const로 선언한 변수는 변경된 다른 값을 대입할 수 없다. 다행히 이 개념은 처음 Swift를 공부하던 시절 var(변수)와 let(상수)라는 개념을 공부해둔 적이 있어서 비교적 편하게 사용할 수 있을 것 같다.

profile
ZEP에서 프론트엔드 개발을 하고 있습니다.

0개의 댓글