Language | Basic/JavaScript

[JavaScript 스터디] 원시 값, 객체 비교

주정용 2021. 1. 22. 18:21
728x90
  • 원시 타입의 값 : 변경 불가능한 값(Immutable value)
    • 변수에 할당하면 메모리 공간에 실제 값이 저장됨
    • 원시 값을 가진 변수를 다른 변수에 할당 --> 원시 값이 복사됨(pass by value)
  • 객체 타입의 값 : 변경 가능한 값(Mutable value)
    • 변수에 할당하면 메모리 공간에 참조 값이 저장됨
    • 객체를 가리키는 변수를 다른 변수에 할당 --> 참조 값이 복사됨(pass by reference)
  • 두 타입의 변수는 모두 값이 있는 메모리 공간의 주소를 전달 --> 변수에 대해서는 pass by reference라고 볼 수 있음
  • 두 타입의 값은 결국 식별자가 알고있는 메모리 공간의 값을 복사 --> 데이터에 대해서는 pass by value라고 볼 수 있음

원시 타입의 값

  • 변경이 불가능하다는 것은 값 자체가 변경될 수 없다는 의미(Immutability)
  • 재할당과 값 자체의 변경은 다름
  • 상수는 재할당이 금지된 변수
  • 원시 값을 가진 변수는 재할당으로만 값을 교체할 수 있음
  • 문자열을 제외하고 메모리 공간의 크기가 정해져 있음

객체 타입의 값

  • 변경이 가능한 값(Mutable value) --> 객체를 수정할 수 있음

  • 확보해야 할 메모리 공간의 크기를 정해둘 수 없음

  • 변수의 메모리 주소를 통해서 메모리에 접근하면 참조 값을 확인

  • 객체를 수정할 때, 재할당을 하지 않으면 참조 값은 변하지 않음

  • 여러 개의 식별자가 1개의 객체를 참조할 수 있음

  • 객체 리터럴은 평가될 때마다 새로운 객체를 생성함

학습 도서

  • '모던 자바스크립트 Deep Dive', 이웅모 저, 위키북스

http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&linkClass=3314&barcode=9791158392239