js - 값 / 참조

바쁘다 바빠 현대사회·2020년 12월 20일
0

원시타입

원시타입은 ? 값에의한 전달 이 일어나는 데이터타입.

let a = 5;
let b = 10;

let x = a;
let y = b;

위 예제를 봅시다. 변수 a 와 b 는 원시타입을 가진 변수 입니다.

이 변수들을 다른 변수에 할당하게 되면, 새로운 변수에 값을 '복사' 해서 넣는 것입니다.

위 사진처럼, a 의 값을 바꿨지만 x 는 어떤 영향도 받지 않았습니다.
각 변수들은 사실 아무런 관계가 없다는 것입니다.

이는 바로, 값이 직접 바뀌거나, 참조되는것이 아니라 '복사' 되었기 때문입니다.

객체

원시타입이 아닌 값이 할당되면, 해당 변수는 그 값을 가리키는 참조를 가지게 됩니다.
참조는 메모리에서 객체의 위치 (주소) 를 나타냅니다. 즉, 변수는 실제로 그 값을 가지는 것이 아니라 객체의 위치를 찾을수 있는 주소만을 가집니다.

예를 들어봅시다.

let arr = []

arr.push(1);

이렇게 변수의 값은 바뀌지 않습니다.
메모리 속의 값만 바뀌며, 변수는 단지 해당 메모리 주소로 가서 그 값을 보여주기만 할 뿐입니다.

참조할당

참조 타입의 값이 다른 변수로 복사될때에, 값의 '주소'는 실제로 복사가 됩니다.

let Ref = [1];
let RefCopy = Ref;

이렇게 된다면, RefCopy 의 값은 Ref의 주소가 되겠지요.

profile
알쏭달쏭 디지털 세상

0개의 댓글