모던자바스크립트 11장 원시 값과 객체의 비교

연호·2022년 12월 18일
0

모던자바스크립트

목록 보기
6/28

원시 값과 객체의 비교

  1. 원시 타입primitive type의 값은 변경 불가능한 값immutable value이다. 변수 값은 재할당을 통하여 변경할 수 있으나 메모리 주소 자체는 변경되지 않는다.

  2. 변수에 원시 값을 갖는 변수를 할당하면 할당되는 변수에 원시 값이 복사되어 전달. 이를 값에 의한 전달이라 한다. 식별자는 값이 아니라 메모리 주소를 기억하고 있다.

var score = 80;
var copy = score;

console.log(score);   // 80	
console.log(copy);	  // 80. 값을 score에서 전달 받았으나 새로운 메모리 공간에 저장된다.			

score = 100;

console.log(score);	   // 100
console.log(copy);     // 80. copy는 새로운 메모리 공간에 저장됬으므로 score와는 이제 무관
  1. 객체 타입의 값은 변경 가능한mutable value 값이다.

  2. 객체는 할당한 변수가 기억하는 메모리 주소를 통하여 메모리 공간에 접근하여 참조 값에 접근한다. 참조 값은 객체가 저장된 메모리 공간의 주소 그 자체이다. 이 객체의 메모리 주소에 여러 개의 식별자가 공유될 수 있다.

var person = {
  name: 'Lee'
};

var copy = person; // 참조 값을 복사한다. copy와 person 은 동일한 참조 값을 갖는다.

console.log(copy === person); // true

copy.name = 'kim';
person.address = 'seoul';

console.log(copy);    // {name : "kim', address : 'seoul'};
console.log(person);  // {name : "kim', address : 'seoul'}; 동일하게 변경
profile
뉴비

0개의 댓글