값에 의한 전달, 참조에 의한 전달

fe_sw·2022년 12월 19일
0

Javascript

목록 보기
21/22

데이터 전달(pass by value)

데이터를 변수에서 다른 변수로 전달할 때 "값에 의한 전달"과 "참조에 의한 전달 방식"이 있다.

이 전달 방식은 데이터 타입에 따라 다른다

  • 원시(Primirive) 타입: 값의 전달
  • 객체(Object) 타입: 참조의 전달

값에 의한 전달(pass by reference)

원시타입의 데이터값이 들어있는 변수를 다른 변수로 대입하면 값에 의한 전달이 발생하는데
이때 변수에 들어있는 데이터값을 다른 변수에 전달 된다.

이때 한 변수의 데이터값을 재할당하면, 두 변수는 별도의 메모리 주소를 가지므로 변경된 값을 공유 하지 않는다


let bar = 1;
let foo = bar;
bar = 500
console.log(foo);  // 결과: 100

참조에 의한 전달

자바스크립트에서 원시타입을 제외한 모든 데이터는 참조타입인데, 참조타입은 원시타입과 다르게
대입과정에서 데이터값을 전달하는게 아닌, 데이터가 들어있는 메모리주소가 전달되고, 이것을 참조에 의한 전달이라고 한다.

이때 한 변수의 데이터를 변경하면 , 두 변수는 같은 메모리 주소를 가르키므로 똑같이 데이터 변경이 일어난다


let foo = {num:1}
let bar = a;
foo.num = 10;
console.log(bar.num);  // 결과: 10

0개의 댓글