원시 값을 변수에 할당하면 변수(확보된 메모리 공간)에는 실제 값이 저장되고 원시 값은 변경이 불가능하다.원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달되고 이를 값에 의한 전달(pass by value)라고 한다. 객체를 변수에 할당하면 변수(확보된 메모리 공간)에는 참조 값이 저장되고 객체는 변경이 가능하다.객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사되어 전달되고 이를 참조에 의한 전달(pass by reference)라고 한다.원시 값 자체를 변경할 수 없다는 것이지 변수 값을 변경할 수 없다는 것이 아니다. 변수는 언제든지 재할당(엄밀히 말하면 교체)을 통해 변수 값을 변경 할 수 있다.var person = {
name: 'Lee'
};
var copy = person;
// copy와 person은 동일한 객체를 참조한다.
console.log(copy === person); // true
=== 일치 비교 연산자를 통해 객체를 할당한 변수를 비교하면 참조 값을 비교한다.