카테고리 없음

코어자바스크립트:데이터타입/실행컨텍스트

하초 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