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
'JavaScript' 카테고리의 다른 글
forEach와 map 의 차이 vue의 v-for react의 map 작동방식 차이 (0) | 2023.05.11 |
---|