var
var는 ES6 등장 이전에 변수를 선언할 때 사용되던 키워드다.
하지만 ES6 등장 이후 let과 const를 사용하고, var는 큰 단점이 있어 현재 잘 사용하지 않는다.
그래서 오래된 소스들을 보면 대부분 var로 선언되어 있는 모습을 볼 수 있다....
그럼 어떤 단점이 있는지 알아볼까?
먼저 아래 코드를 보면 변수 num 이 중복으로 선언되어 있다. 그러나 이를 오류로 판단하지 않고 정상 동작한다.
var num = 123;
var num = 456;
console.log(num);
실행결과 : 456
만약 소스코드가 길어지고 큰 프로젝트를 진행하게 될 경우, 해당 문제로 인한 오류를 찾기가 매우 힘들어진다.
그런데, 왜 이런 현상이 나타날까?
그 이유는 바로 Hoisting(호이스팅) 때문이다.
JavaScript에서 호이스팅(hoisting)이란,
인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것 을 의미한다.
var로 선언한 변수의 경우 호이스팅 시 undefined로 변수를 초기화하며, 변수의 선언과 초기화를 분리한 후, 해당 변수의 선언부를 최상단으로 옮기기 때문에 이런 일이 발생하게 된다.
그래서, 뭘 쓰는게 좋을까?
재할당이 필요없는 상수과 객체에는 기본적으로 const를 사용하는 것이 좋다. 의도치 않은 재할당을 방지해주기 때문에 안전하다.
재할당이 필요한 경우 let을 사용하는 것이 좋다. 단, 이 때 변수의 스코프는 최대한 좁게 만드는 것이 좋다.
반응형
'Programing > Javascript' 카테고리의 다른 글
[JavaScript] 함수 기본 매개변수 (Default Parameters) 사용법 (0) | 2023.03.31 |
---|---|
[JavaScript] 전개 연산자(Spread Operator) 사용법 (0) | 2023.03.22 |
[JavaScript] 데이터 타입 확인 - typeof 연산자 사용법 (2) | 2023.03.22 |
[JavaScript] 템플릿 리터럴(Template Literals)이란? (0) | 2023.03.22 |