전역공간을 최소화해야된다고 들은곳
하지만 진짜 이유는 무엇일까?!를 한번 알아보자
실제로 브라우저에 console.log(window)
라고 타이핑 해보면 자바스크립트 API 명세가 엄청나게 많은 것을 볼 수 있다. ex) window.alert, window.setTimeout 등등
하지만 브라우저에 console.log(global)
라고 타이핑 해보면 에러가난다. 이유는 global은 node.js 환경에서의 최상단이기 때문이다.
결론 : 전역공간의 최상위 이다. 그리고 브라우저와 Node.js로 나뉜다.
이유 : 어디서나 접근이 가능해서 위험하다 좀 더 자세히 사람이 생각하기에는 스코프가 분리 되어있다고 생각하지만 런타임 환경에서는 분리가 되어 있지 않다.
결론 :
1. 전역변수를 최대한 만들지 않는다.
2. 지역변수로 만든다.
3. var를 사용하지 않는다.
4. window, global에 접근하며 조작하지 않는다.
5. const와 let으로만 변경해서 많이 더렵혀지지 않는다.
6. IIFE, Module, Closure를 사용해서-> 스코프를 나누기
해결책 :
1. 함수를 잘개 쪼갠다.
2. 바로 return을 해버린다.
3. 고차함수 (map, filter, reduce)
4. 선언형 코드로 바꾼다.