Pass by Value (값에 의한 전달)
- 원시 데이터 타입(숫자, 문자열, 불리언 등)을 다룰 때 사용됩니다.
- 함수에 값을 인자로 전달할 때, 실제 값이 복사되어 함수 내부로 전달됩니다.
- 함수 내부에서 매개변수의 값을 변경해도 호출자에게는 영향을 미치지 않습니다.
function changeValue(x) {
x = 10;
}
let num = 5;
changeValue(num);
console.log(num); // 5 출력
Pass by Reference (참조에 의한 전달)
- 객체와 배열과 같은 참조 데이터 타입을 다룰 때 사용됩니다.
- 함수에 객체 또는 배열을 인자로 전달할 때, 참조(메모리 주소)가 전달되며, 함수 내부에서 객체 또는 배열을 변경하면 호출자에게도 영향을 미칩니다.
function modifyArray(arr) {
arr.push(4);
}
let myArray = [1, 2, 3];
modifyArray(myArray);
console.log(myArray); // [1, 2, 3, 4] 출력
JavaScript의 독특한 동작 (값과 참조 모두에 의한 호출):