본문 바로가기
웹/JavaScript

자바스크립트 변수 복사 비교

by void pattern 2022. 11. 21.

기본형 데이터와 참조형 데이터 값 비교

var a = 10;
var b = a;

var obj1 = {c:10, d:'ddd'}
var obj2 = obj1;

console.log(b);			//10
console.log(obj1.c);	//10
console.log(obj2.c);	//10


b = 15;
obj2.c = 20;

console.log(b);			//15
console.log(obj1.c);	//20
console.log(obj2.c);	//20


// a !== b
// obj1 === obj2

a !== b

obj1 === obj2

기본형과 참조형 데이터의 가장 큰 차이점이다

 

변수에 할당하기 위해 주솟값을 복사해야 한다.

 

기본형은 주솟값을 복사하는 과정이 한 번만 이뤄지고

참조형은 한 단계를 더 거친다.

 


변수 복사 이후 객체 자체를 변경했을 때

var a = 10;
var b = a;

var obj1 = {c:10, d:'ddd'}
var obj2 = obj1;

console.log(b);			//10
console.log(obj1.c);	//10
console.log(obj2.c);	//10


b = 15;
obj2 = {c:20, d:'ddd'}	//객체 자체를 변경

console.log(b);			//15
console.log(obj1.c);	//10 👉🏻 객체를 변경한 것이어서 새로운 공간에 새 객체가 저장
console.log(obj2.c);	//20

댓글