본문 바로가기
Front-End Study/모던 자바 스크립트_DeepDive

CH_11. 원시 값과 객체의 비교

by 코딩기 2023. 11. 18.
728x90
자바 스크립트의 7가지 데이터 타입 -> 원시와 객체 타입으로 나눌 수 있음.
  • 원시 값
    변경 불가능한 값
    변수에 할당 시 변수(확보된 메모리 공간)에 실제 값 저장
    원시 값을 가진 변수를 다른 변수에 복사 시 원본의 원시 값이 복사되어 저장
    (값에 의한 전달)
  • 객체 값
    변경 가능한 값
    변수에 할당 시 변수에 참조 값 저장
    객체 값을 가진 변수를 다른 변수에 복사 시 원본의 참조 값이 복사되어 저장
    (참조에 의한 전달)

원시 값

-> 원시 값 자체는 변경 불가하지만 이를 할당한 변수 값은 변경이 가능
(변수와 값의 의미를 구분하는 것이 포인트)
원시 값 불변(신뢰성) -> 재할당 시 메모리 주소의 변경

//값에 의한 전달
var score = 80;
var copy = score;

console.log(score); // 80
console.log(copy); // 80

score = 100;

console.log(score); // 100 (재할당 되어 100으로 변경)
console.log(copy); // 80 (원본의 원시값이 할당되었으므로 변경X)

객체

프로퍼티 개수 지정X, 동적 추가, 삭제O
-> 변경 가능한 값으로서 참조 값에 접근(참조한다, 가리킨다와 같은 표현)
-> 재할당 없이 객체를 직접 변경 가능(동적 접근)

// 참조에 의한 전달
var person = {
name: "Lee";
}

var copy = person; // 참조 값 복사(얕은 복사)
copy.name = "jeong"; // 복사한 참조값을 통해 객체 변경
// 어느 한쪽에서 값을 변경, 삭제 시 양쪽 다 영향을 받음