Table of Contents
전역 변수
- 전역 변수는 런타임 이전에 선언문이 실행되어 생성되고, 런타임에 할당문이 실행되어 값을 가지게 된다
- 전역 변수는 전역 객체(브라우저에서는
window
, 노드에서는global
)와 생명 주기가 같다 - 그래서
window
는 웹페이지를 닫기 전까지,global
은 노드에서 프로세스를 종료하기 전까지 살아있기 때문에 전역 변수도 그 때 까지 살아서 메모리를 점유한다
전역 변수의 문제점
- 긴 생명 주기: 생명주기가 길어서 메모리 리소스를 오랜 기간 점유한다
- 스코프 체인 상에서 종점에 존재: 검색 속도가 가장 느리다
전역 변수 사용 억제하는 방법
- 즉시 실행 함수
- 모듈화
지역 변수
- 지역 변수는 함수가 호출되어 함수 안의 코드가 실행될 때, 함수 안에서 정의된 변수들의 선언문이 실행되어 생성되고, 이 후 해당 할당문 위치에 왔을 때 실제로 값이 할당된다
- 그래서 함수 안에서 정의된 지역 변수는 그 함수가 호출되지 않으면 함수 내부의 변수 선언문도 실행되지 않는다
- (전역 변수는 함수 호출과 같은 진입점이 없어 바로 선언문이 실행되는 것과 대비되는 점이다)
- 이처럼 호이스팅은 스코프를 단위로 동작한다