카테고리 없음
코어자바스크립트:데이터타입/실행컨텍스트
하초
2023. 6. 9. 23:44
데이터타입
기본형(Primitive Type)
Number
String
Boolean
null
undefined
Symbol
참조형(Reference Type)
Object(Array/Function/RegExp..)
메모리 동작방식
스택 메모리(변수/기본형 데이터/정적 할당)
힙 메모리(참조형 데이터/동적 할당)
참조형은 기본형과 달리 1단계를 더 거쳐서 저장된다.
(객체 전체 참조하는 주소를 저장, 객체 내부의 각각의 값에 대한 주소는 별도)
아무데서도 사용되지 않는 참조공간들은 참조 카운트가 0이 되고, 가비지컬렉트에 의해 제거된다.
값을 직접 저장할 때
데이터 할당 빠름/ 비교할 때 비용 많이 듬/ 메모리 낭비
값의 주소를 저장할 때
데이터 할당 느림/비교에 비교x/ 메모리 낭비 x
값의 주소를 저장함으로서 전체 메모리에 같은 값이 유일하게 남게 됨 -> 불변함
실행컨텍스트
코드를 실행하는 데 필요한 배경이 되는 조건이나 환경을 뜻한다.
함수를 실행할 때 필요한 조건이나 환경정보를 담은 객체.
(전역공간/모듈/함수 => 전부 함수라고 봐도 무방하다. 블록스코프는 실행컨텍스트가 아니다.)
실행컨텍스트의 구조
variableEnviroment :식별자 정보 수집(변화 반영X)
LexicalEnviroment: : 각 식별자의 데이터 추적(변화 반영O)
- environmentRecord: 현재 문맥의 식별자(호이스팅)
- outerEnviromentReferenct: 외부 식별자(스코프 체인)
ThisBinding