Frontend study 일지 #3 - JavaScript memory heap 편(수정중)

이유미·2022년 10월 10일
0

frontend-study

목록 보기
3/5

< javascript 변수의 타입 >

  • 원시 자료형(primitive type)

변수에 값 자체가 담김
=> 원시 자료형 변수는 '값'을 하나씩 담고 있다 = 데이터를 담고 있다.

종류 : string, number, bigint, boolean, undefined, symbol, null

null은? console.log(typeof null) //object 는 아주 유명한 javascript 초기 버전 버그인데, 이 때문에 객체여서 참조 자료형이라고 헷갈리기 쉽다. 하지만 MDN 공식 문서에서도 볼 수 있듯이 원시 자료형 중 하나이다.

특징 : 담겨있는 데이터 자체를 변경할 수는 없다(immutable). 하지만 이 변수에 다른 데이터를 재할당할 수 있다.

  • 참조 자료형(reference type)

변수에 메모리(값의 보관함) 주소가 담김
=> 원시 자료형처럼 고정된 크기의 보관함이 아님 = 동적으로 크기가 변하는 데이터를 보관하기 위해 변수가 아닌 다른 곳에 데이터를 저장하고 그 주소만 변수에 할당한다.** => 여기에서 동적으로 변하는 데이터 보관함이 바로 memory heap이다.

종류 : 위 7개의 원시 자료형이 아닌 모든 자료형은 참조 자료형이다. 대표적으로 배열(Array), 객체(Object), 함수(funtion(){})가 있다.

특징 : 참조 자료형 변수에 값을 재할당하면 주소를 참조한 모든 값이 영향을 받는다. = 해당 주소를 사용하는 모든 변수 사이에 값이 공유된다는 뜻. 참조형 데이터는 원시 자료형 데이터의 집합이다.

< memory heap >

memory heap은 참조형 데이터들이 저장되는 공간

javascript v8 엔진 내에는 하나의 call stack하나의 heap이 존재한다.

< Garbage Collector >

< memory leak >

javascript 메모리 누수

profile
신입 프론트엔드 개발자 구직중

0개의 댓글