복제 (copy)
var a = 1;
var b = a;
b = 2;
console.log(a); //출력 : 2
//a가 2인 것은 매우 당연하다.
//왜냐하면 값을 변경한 것은 a가 아니라 b이기 때문이다.
//b는 a의 값을 복사받은 것이기 때문에 a에는 영향이 없다.
참조 (reference)
var a = {'id' : 1};
var b = a;
b.id = 2;
console.log(a.id); //출력 : 2
//평소처럼 복제하듯이 b=a를 해준 다음에 나는 분명 b의 id 값을 변경했는데, a의 id 값도 바뀌었다.
//그 이유는 변수에 저장된 것이 원시 데이터 타입이면 그 안에는 실제 데이터가 들어가있다.
//하지만 변수에 저장된 것이 객체 타입이면 그 안에는 참조 방법이 들어가있음을 의미한다.