javascript

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

Kassy_kim 2022. 12. 17. 19:49

원시 타입의 값

- 변경 불가능한 값 (읽기 전용)

- 원시 값을 변수에 할당하면 변수에는 실제 값이 저장된다.

- 원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달된다.

- 불변성의 특징: 불변성을 갖는 원시 값을 할당한 변수는 재할당 이외에 변수 값을 변경할 수 있는 방법이 없다.

var score = 80;
var copy = score;

copy = 100;

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

score = 100;

console.log(score,copy) //100,80
console.log(score === copy) //false


// ->따라서 score변수와 copy 변수의 값을 다른 메모리 공간에 저장된 별개의 값이라는 것을 알 수 있다.

 

객체(참조) 타입의 값

- 변경 가능한 값

- 객체를 변수에 할당하면 변수에는 참조 값이 저장된다.

- 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사되어 전달된다.

- 이를 참조에 의한 전달이라고 한다.

var person1 = {
   name:'Lee'
}
var person2 = {
   name:'Lee'
}

console.log(person1 === person2); //false
console.log(person1.name === person2.name); //true