JS - var변수를 사용하지 않는 이유

반응형

 

Var 변수를 기피하는 이유

  • 최종적으로는 버그의 발생 가능성을 낮추기 위하여 기피한다.

 

1. 블록 스코프에 대한 개념이 없다

// 블럭 스코프가 없는 var의 단점

// 제어문(if)의 조건 상관 없이 var변수는 선언과 할당이 된다.
if (false) {
	var a = 1;
}

alert(a);
// 1

/* ------------------------------ */

// 반복문(for)을 사용 한 후에도 값은 그대로 존재한다.
for (var i=0; i<10; i++) {
	// 반복문 코드 ~~~~
}
alert(i);
// 10

2. 잘못된 호이스팅으로 인해 버그가 발생 될 확률이 높다

// 호이스팅은 선언만 될 뿐, 할당은 되지 않는다.
// 값은 undefined로 반환되며 버그를 초래 할 수 있다.
alert(message);
var message = "안녕하세요";
// undefined

 

  • 호이스팅에 대한 설명 (호이스팅의 개념, 장점과 단점)

https://luvris2.tistory.com/361

 

JS - Var변수 Hoisting의 이해, 장점과 단점

호이스팅(Hoisting)이란? 변수의 정의가 범위에 따라 선언과 할당으로 분리되어 변수의 선언을 항상 최상위로 끌어올리는 것을 의미 즉, 변수 선언의 위치와 상관없이 해당 범위 내의 실행 코드보

luvris2.tistory.com


3. 변수 재선언으로 인한 변수의 값이 제대로 저장되지 않을 확률이 높다

var a = 1;
alert(a);
// 1

var a = 10;
alert(a)
// 10

// 변수를 재선언해도 에러가 나지 않으며, 새로 입력한 값으로 재설정 된다.
// 코드의 양이 길어질수록 개발자는 똑같은 변수를 선언하여도
// 에러가 출력되지 않으므로 실수를 유발 할 확률이 높다.

참고

  • javascript.info - 함수 심화학습 - 오래된 var

https://ko.javascript.info/var

 

오래된 var

 

ko.javascript.info

반응형