원시값과 참조값

노태경·2021년 9월 15일
0

원시값

  • 원시 타입, 원시 자료형, primitive 타입
  • 객체가 아니면서 메서드도 가지지 않는 데이터

    string, number, bigint, boolean, undefined, symbol, null

  • 원시 값은 불변하다(immutable)
  • 변수에는 데이터 값 자체가 할당됨
  • 변수에 값을 다시 할당하여 변수의 값이 변하는 것과는 다른 의미
  • 변수를 복사할 경우, 데이터의 값이 복사되어 서로 독립됨

참조값

  • 참조 타입, 참조 자료형, Reference 타입

    Array, Object, function...?

  • 메모리에 저장된 객체로, 여러 값을 가질 수 있음
  • JavaScript는 메모리 위치에 직접 접근하는 것을 혀용하지 않는다
  • 참조를 통해 접근한다.
  • 변수는 참조 주소를 가진다.
  • 변수를 복사할 경우 참조 주소를 복사하는 것이므로, 두 변수는 같은 참조를 가리킴
  • 참조 타입은 Heap에 저장된다

Heap

  • Code Area : 실행할 Js 코드 저장
  • Call Stack : 실행 중인 함수를 추적하여 계산 수행, 지역 변수 저장, 원시 타입 저장, LIFO(Last In First Out) 정책을 따름
  • Heap : 참조 타입들이 저장되는 곳, LIFO을 따르지 않고, 랜덤하게 배치, Js엔진의 메모리 관리자가 항상 관리(가비지 컬렉션에 대한 이야기)
  • Heap은 동적으로 공간이 변한다
let arr = [1,2,3,'hello'];
let obj = {
  name: 'Bob',
  age: 20
};

출처 : https://velog.io/@bining/javascript-%EC%9B%90%EC%8B%9C%ED%83%80%EC%9E%85primitive-type-VS-%EC%B0%B8%EC%A1%B0%ED%83%80%EC%9E%85reference-typefeat.-stack%EA%B3%BC-heap-%EC%98%81%EC%97%AD ,
https://velog.io/@code-bebop/JS-%EB%A9%94%EB%AA%A8%EB%A6%AC-%EA%B5%AC%EC%A1%B0

profile
개발자 공부 일기😉

0개의 댓글

관련 채용 정보