개요
let, var은 모두 JavaScript에서 사용이 가능한 변수 선언 방법이다. 물론 두 방법 사이에는 차이점이 있다.
내용
var의 한계
C#을 공부했었던 필자로써는 var가 상당히 간편하고 편리한 변수 선언 방법이지만, JavaScript에서는 var를 사용함에 있어서 한계가 있다.
var test = "Test1";
console.log(test);
var test = "Test2";
console.log(test);
C#을 사용할 때에는 위 코드를 보자마자 이상하다고 생각이 들 것이다.
"같은 이름의 변수를 두 번 선언하는 것은 컴파일 에러가 발생할텐데.."
JavaScript에서는 위 코드가 두 번의 console.log(test) 함수 호출은 다른 결과를 출력하지만 정상적으로 실행이 된다.
즉, 중복 선언이 가능하다는 것이다. 이러한 특징은 변수의 유일성을 보장할 수가 없게 된다.
let, const의 등장
ES6이후, let과 const이라는 키워드가 등장하게 된다. 이는 기존 var의 결점을 보완하고 더욱 안전하게 사용할 수 있도록 한다. var를 사용할 때 재선언이 가능하여 변수의 유일성이 보장되지 않았던 반면에 let의 경우는 재선언 자체가 불가능하여 let 변수의 유일성이 보장된다.
(const의 경우는 다른 언어에서도 사용되는 키워드이라 다들 친숙할 것 같다.)
var의 예시로 사용되었던 코드를 let으로 변경해보자. let 변수의 경우는 재선언이 불가능하여 아래 코드는 바로 에러 메세지를 출력하게 된다.
let test = "Test1";
console.log(test);
let test = "Test2";
console.log(test);
위 코드를 의도대로 정상 실행하기 위해서는 아래와 같이 사용되어야 한다.
let test = "Test1";
console.log(test);
test = "Test2";
console.log(test);
그렇다면 const의 경우는 어떨까? const 의 특징은 immutable(불변성)이다. 한 번 선언된 const 변수는 수정이 불가능하다는 것이다. 우리가 예시로 들었던 코드는 const를 사용하기엔 부적합하다.
결론
ES6 이후에는 var는 보통 사용되지 않는다고 한다. let이 var의 한계를 보장하고 편리하게 사용되어지고 있다고 한다. C#을 주로 사용하는 나로썬 약간 혼동이 있을 수도 있으니 명확하게 기억하고 있어야겠다.
'Software Develop > Web' 카테고리의 다른 글
[API] 공공데이터 API 사용하기 (0) | 2023.03.08 |
---|---|
[React] github pages를 활용하여 React 프로젝트 배포하기 (0) | 2023.03.08 |
[JavaScript] html 파일내에서 json 읽어 출력하기 (0) | 2023.01.03 |