본문 바로가기
DEV/Javascript

[자바스크립트]const, let을 이용한 변수 선언

by 어쩌다개발 2023. 6. 6.
반응형

기존의 자바스크립트에서는 var를 이용하여 변수를 선언했었다.
그러나 var로 변수를 선언하는 것은 몇 가지 문제점이 있다.
1. 변수를 덮어 쓸 수 있다.
2. 다시 선언(재선언)할 수 있다.

위 테스트를 보면 알 수 있듯이 한 번 정의한 변수에 다른 값을 대입할 수 있다.
물론 덮어써야 되는 경우도 있지만, 덮어 쓰고 싶지 않을 때도 있을 수 있으므로 무조건 덮어 쓰는 것은 좋지 않다.

또한 완전히 같은 변수명을 여러 위치에서 변수로 정의할 수 있다.
프로그램 실행 순서에 따라 어느 변수가 사용되는지 해석하기 어려우므로 재선언은 기본적으로 안 되는 편이 좋다.

그래서 ES2015(ES6)에서 새로운 변수 선언 방법으로 const와 let이 추가되었다.

let을 이용한 변수 선언

1. let은 재선언을 할 수 없다.
2. let은 변수를 덮어 쓸 수는 있다.

let은 덮어쓰기가 가능하다.
재선언은 불가능하다.

위 예제를 보면 알 수 있듯이 덮어쓰기는 가능하나, 재선언시에는 'Identifier 'var2' has already been declared' 라는 에러 메세지가 출력된다.
'이미 선언되어 재선언할 수 없다'는 메세지이다.
즉, 덮어쓰기를 허용 할 변수에는 let을 사용해야 한다.

const를 이용한 변수 선언

const는 재선언, 덮어쓰기가 모두 불가능한 엄격한 변수 선언 방법이다.
'constant = 상수'

덮어쓰기가 불가능하다.
재선언 역시 불가능하다.

const는 기본적으로 변수 덮어 쓰기, 재선언 모두 불가능하다.
그러나 변수 종류에 따라 const로 정의해도 변수값을 변경할 수 있는 경우가 있으므로 주의해야 한다.

const로 정의한 변수를 변경할 수 있는 경우

문자열이나 수치 등 프리미티브 타입이라 불리는 종류의 데이터는 const를 이용해 정의한 경우 덮어 쓸 수 없다.
하지만 객체나 배열 등 오브젝트 타입이라 불리는 데이터들은 const로 정의해도 값을 변경 할 수 있다.

const로 정의해도 객체 내용은 자유롭게 변경 가능하다.

즉, 객체를 정의할 때는 기본적으로 const를 이용한다. 배열 역시 마찬가지이다.

 
 

 

조상님LOTTO - Google Play 앱

무료로 로또 당첨 확률을 높일 수 있습니다.

play.google.com

 

 

뽀모도로 타이머(Pomodoro Timer) - Google Play 앱

뽀모도로(Pomodoro)공부법은 단시간 집중력 향상을 위한 자기주도 학습법입니다.

play.google.com


 
참고: 모던 자바스크립트로 배우는 리액트 입문

반응형

댓글