-
[JavaScript] var를 사용하지 않는 이유Javascript 2022. 1. 7. 15:53
var는 ES6 이전에 사용됐고, 변수를 만들 떄 변수명 앞에 붙혀서 변수를 만들어준다. var는 개발에 있어서 중요한 단점을 가지고 있어서 현재는 거의 사용을 하지 않는다.
var num - 12345 console.log(num) // 12345 var num = 12345 console.log(num) // 12345
num이 중복으로 사용이 됐는데 Error가 발생하지 않는다.
만약 큰 프로젝트에서 변수명을 똑같이 써도 Error가 발생하지 않아서 로직 상의 Errro가 생겨도 찾기 힘들 것이다.
이러한 현상이 나타나는 이유는 Hoisting 때문이다.
Hoisting은 var를 사용해서 변수 선언 했을 때 해당 변수의 선언부를 Scope 최상단으로 올리는 것을 말한다. JavaScript의 변수 생성과 초기화의 작업이 분리되어서 진행되기 때문이다.
var는 Function-scoped다. 따라서, 코드 전체의 최상단이 아니라 함수 내부의 최상단으로 이동한다.
(Function-scoped는 중괄호로 구분이 된 영역의 범위를 갖는게 아니라, 함수 내부의 영역을 범위로 갖는 것을 의미한다.)
var의 문제점은 변수의 중복 선언이 가능하다는 것이다. var를 중복 선언 했음에도 불구하고, 또 그 아래에 중복 선언한 변수를 선언을 할 수 있다.
중복 선언을 하면 기존에 선언되어 있던 변수는 다른 값을 가지게 된다. 그 경우에는 그 변수를 사용하는 다양한 로직에 문제가 생긴다.
다른 문제점은 for문에서의 문제점이 있다. var는 Function-scoped여서 for문에서 for문의 반복을 위해서 변수를 var로 선언하면 이 변수는 for문이 종료 되어도 접근이 가능해진다.
만약에 for문의 함수 내부가 아니라 함수 외부에 전역적으로 돌아가면 for문에서 사용한 var 변수들은 전역 변수 역할을 해서, 전역 변수가 남발이 될 수 있다.
출처: https://hoondev.tistory.com/101
JavaScript에서 var를 사용하면 안되는 이유
var var 는 ES6 등장 이전에 사용되던 키워드이며, 변수를 생성할 때 앞에 붙여서 변수임을 명시합니다. 그러나 이는 개발에 있어서 엄청 큰 단점을 가지고 있어 현재에는 거의 사용하지 않습니다.
hoondev.tistory.com
'Javascript' 카테고리의 다른 글
[JavaScript] split과 parseInt (0) 2022.03.11 JavaScript 소수점 계산 오류와 해결 (0) 2022.02.23 JavaScript 구조 분해 할당 (0) 2022.01.05 JavaScript Class 사용하기 (0) 2022.01.03 var, let, const (0) 2022.01.03