결론부터 말하자면 ES6부터 let과 const가 추가 되었으며, var, let, const 모두 사용이 가능하다.
하지만 나는 이제부터 let, const만을 쓸듯하다.
https://google.github.io/styleguide/jsguide.html#features-use-const-and-let
위의 구글 스타일 가이드를 보면
Declare all local variables with either const or let. Use const by default, unless a variable needs to be reassigned. The var keyword must not be used.
지금까지 너무 트렌드를 따라가지 않는듯 하여 노마드로 강의를 듣고 있는데 거기에서 노마드 강의에서 본 말이 떠오른다.
always const
sometimes let
never var
위 3개의 선언에 대한 차이를 적어보자면
1. 중복선언 가능 여부
불가능 : const, let
가능 : var
2. 재할당
불가능 : const
가능 : let, var
*const는 constant의 줄임말로 상수를 뜻한다.(변경되지 않는 값)
3. 유효 범위
기본적으로 const, let, var는 블럭 내에서는 모두 사용 가능하다고 보면된다.
그런데 특별히 var만 if, for, while, try catch 등 내부에서 var로 선언된 변수는 전역변수로 간주한다.
4. 호이스팅
undefined로 초기화 : var
초기화 안함 : const, let
*호이스팅이란 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것으로 초기화를 제외한 선언만 호이스팅을 한다. 단, var로 선언 시에만 초기화를 함
호이스팅에 대한 자세한 내용은 다음 링크에서 확인 가능하다.
https://developer.mozilla.org/ko/docs/Glossary/Hoisting
5. 전역객체 프로퍼티 여부
전역객체 : var
전역객체 아님 : const, let
전역객체 프로퍼티는 "windows.변수명"으로 접근이 되는지 여부에 따라 다르다.
'Javascript' 카테고리의 다른 글
innerHTML, innerText, textContent 비교 (0) | 2022.08.09 |
---|---|
console API에 대해 (0) | 2022.08.09 |
chartjs 속도 이슈 개선 방법들 (0) | 2022.06.21 |
[javascript ]천단위 콤마(소수점 포함) (0) | 2022.06.15 |
IE로 접속 시 edge로 이동 (0) | 2022.05.27 |
댓글