vue와 react의 상태관리에 대해서 알아보려고 하는데 참조값이 뭐지 라는 생각이들어서 찾아보게되었다 

 

js 는 값에의한 전달과 참조에 의한 전달을 사용하는데 

 

boolean, null , undefined, string , number 등의 원시타입은 값에의한 전달을 하게 된다 

 

좋은 예시가 있어 참고할 블로그 링크를 하단에 적어두겠다 

 

 

이런식으로 변수선언을 하고 

const x = 10

const y = 'abc'

const z = null 

 

원시타입이 지정되면 메모리에 변수가 

이런식으로 저장된다고 가정하고 

 

const a = x

const b = y

 

이렇게  또 변수선언을 한다하면 

메모리엔 이런식으로 값이 저장되게 된다 

 

원시타입이 아닌 arr object function 은

그 값으로 향하는 참고값을 변수에 지정하게 된다 

 

즉 이러한 값들은 내가 메모리 값을 보게되면 그 배열이 바로 보이는게 아니라 그 배열로 가는 번호가 저장되어있다고 생각하면 된다 

두번 타고 들어가야한다는 의미 

 

1) var arr = []

2) arr.push(1);

 

이런식으로 예시그림이 있는데  변수의 값은 바뀌지않고  arr의 값만 바뀌는것이다 

(변수는 arr로 향하는 이정표이기 때문에 )

 

설명을 하자면 변수 arr은 값으로 #001 이라는 메모리주소를 가르키고있고 

 

주소 #001 에는 배열이 담겨있는것 . 

 

 

이렇게 변수를 선언한다면 refCopy는 값을 참조가 복사된다 결국 같은 메모리주소를 바라보기는 한다 

var reference = [1];
var refCopy = reference;

 

 

이 외에도 순수함수 비순수함수 가비지컬렉션에 대한 이야기들이 있으니 아래 블로그를 한번쯤 쓱 보는것도 좋다 

 

 

 

 

 

 

 

 

참고블로그 

https://velog.io/@jakeseo_me/2019-04-01-1904-%EC%9E%91%EC%84%B1%EB%90%A8-2bjty7tuuf

 

자바스크립트 개발자라면 알아야 할 33가지 개념 #3 값(value) vs 참조(reference) (번역)

들어가기 전에 이 포스팅은 https://github.com/leonardomso/33-js-concepts 에 있는 포스팅들을 번역한 것입니다. 오역이나 의역이 있을 수 있습니다. 지적해주시면 확인 후 바로 정정하겠습니다. original sourc

velog.io

 

+ Recent posts