[남이 알려주는 es6] 1-1.왜 var는 안되는가

2051 단어 ES6node.jsES6

1. 함수 레벨 스코프.
전역변수를 남발할 가능성이 크다.

function foo(){
  if(true){
    var a = 0;
  }
  console.log(a);/// 0 출력
}

2. var 키워드 생략 허용
이는 암묵적 전역변수를 남발할 가능성이 크다.

a = 0;
console.log(a);/// 0 출력

3. 변수 중복 선언 허용
변수를 중복선언함으로서 변수값의 변경이 일어날 가능성이 크다.

var a;
var a;/// 정상작동한다.

var의 문제의 대부분은 전역변수와 엮인다.
물론 전역변수는 간단한 프로젝트의 경우 유용할 수 있지만, 함수 레벨 스코프이기 때문에 언제 GC가 동작하는지 몰라, 메모리 누수가 일어날 수 있고, 비순수함수에 의해서 의도치 않게 변형될 수 있다.

좋은 웹페이지 즐겨찾기