컴퓨터 공학/JavaScript

[JavaScript] var, const, let 차이점

ITISIK 2021. 6. 13. 09:13
반응형

웹 개발을 하면서 자바스크립트는 빠질 수 없는 언어중 하나입니다.

그런 자바스크립트에서 가장 기본이 되는것이 선언 방식인데,

오늘 포스트에서는 그 선언 방식에 대해서 이야기 해보려고 합니다.

 

겉으로는 다를 것 없는 자바스크립트에도 나름의 버전이 있습니다.

2009년에 제정된 ES5이후 가장 대규모의 업데이트가 있었던 것이 2015년의 ES6인데,

오늘은 이 두 버전의 차이중 일부에 대한 설명이기도 합니다.

var로 변수를 선언하는 것은 ES5까지의 변수 선언 방식이고,

이를 개선한 것이 const, let으로 변수를 선언하는 ES6의 문법입니다.

 

그러면 var 방식으로 변수를 선언하는 것에 대한 단점을 알아보겠습니다.

위와 같이 n이라는 이름의 변수를 두 번 선언했는데도,

var를 사용할 때는 아무런 에러없이 변수를 선언해주고 있습니다.

 

얼핏 생각하면 코드의 유연성을 증가시켜서 좋은일이 아닌가 싶을 수 있지만,

여러 사람이 짧지 않은 코드를 작성하다보면, 이런 현상은 좋은 일이 아니죠.

중복되는 변수명은 중복된다고 일러주고,

다른 변수명을 사용하도록 유도하는 것이 좋을 것입니다.

 

다음의 예를 보시죠.

Uncaught SyntaxError: Identifier 'tmp' has already been declared

 

이와 같이 let을 사용할 때에는 중복해서 변수를 선언하는 것을 허용하지 않습니다.

이는 const로 변수를 선언할 때에도 마찬가지 입니다.

 

그렇다면 const와 let의 차이점은 무엇인지 궁금하실텐데,

이는 변경불가능(immutable)한 변수인지 여부입니다.

 

const의 경우에는 한 번 할당한 변수를 다시는 수정할 수 없는 상수형태로 선언을 하고,

let의 경우에는 한 번 할당 되었더라도 재할당 할 수 있는 변수형태로 선언을 합니다.

 

따라서, 수정할 필요가 없는 변수는 기본적으로 const로 선언을 해주고,

수정할 필요가 있는 변수의 경우에만 let으로 선언해주는 것이 가장 이상적입니다.

 

이것이 var, let, const의 가장 간단한 차이점입니다.

한 단계 더 나아가면 호이스팅이라는 특성도 있는데, 이는 다음에 다루도록 하겠습니다.

반응형