반응형
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
3. 변수 재선언으로 인한 변수의 값이 제대로 저장되지 않을 확률이 높다
var a = 1;
alert(a);
// 1
var a = 10;
alert(a)
// 10
// 변수를 재선언해도 에러가 나지 않으며, 새로 입력한 값으로 재설정 된다.
// 코드의 양이 길어질수록 개발자는 똑같은 변수를 선언하여도
// 에러가 출력되지 않으므로 실수를 유발 할 확률이 높다.
참고
- javascript.info - 함수 심화학습 - 오래된 var
반응형