자바스크립트 강의 3주차 핵심내용

이동환·2023년 4월 7일
0

항해99

목록 보기
19/27

핵심 내용

JS 메모리 활용 방식
실행 컨텍스트, 콜 스택, 메모리 힙

1) 변수 선언과 데이터 할당

JS에서는 메모리 활용을 변수 선언부를 저장하는 변수 영역과 변수에 할당되는 데이터를 저장하는 데이터 영역이 나누어져 있다.
그리고 참조 타입 변수의 경우 다른 언어와 마찬가지로 힙 영역을 따로 두어서 관리하고 있다.

참조 영역 데이터의 참조 카운트가 0이 되는 경우 앞으로 사용되는 경우가 없다고 판단해서 가비지 컬렉터가 제거한다.

2) 실행 컨텍스트

실행 컨텍스트는 실행에 필요한 정보들을 저장한 객체이다.
실행 컨텍스트는 이벤트가 발생해 특정 스코프가 사용될 때마다 만들어져서 콜 스택 위에 쌓인다.

3) 호이스팅

호이스팅은 실행 컨텍스트에 해당 스코프의 모든 변수 선언부를 넣기 위해 동작하다가 생긴 가상 현상이다.

호이스팅의 특이한 점은 함수를 함수 선언식으로 만들게 되면 함수의 내용까지 호이스팅이 되기 때문에 예상치 못한 문제가 생길 수 있다.
그래서 함수는 함수 표현식으로 만드는 것이 좋다고 한다.

물론 변수명, 함수명의 경우 겹치지 않게 사용하는 것이 좋겠지만 항상 최선의 상황일 수는 없기 때문에 레거시 코드를 유지보수 할 때 이런 문제가 생길 수도 있다는 점을 잘 알아야 할 것이다.

profile
개발을 즐기고 싶다.

0개의 댓글