본문 바로가기
Web/JavaScript

javascript - memory개념과 비교

by 개발에정착하고싶다 2022. 12. 3.
320x100

기본적으로 컴퓨터언어 관련하여서는 메모리 관련 이슈를 거의 초기에 배우는 것 같다.

파이썬 이후로 두번째로 메모리 이슈를 배우게 되는 것 같다.

 

가령

 

자바스크립트에서

 

[1,2,3] === [1,2,3]

은 false다

컨텐츠 내용은 동일하지만 메모리값이 동일하지 않아서이다.

 

메모리란 일종의 주소값이라고 보면된다.

그리고 그 주소값은 각각의 정의에 부여된다고 보면된다.

우리들의 육안으로 보기에 위의 [1,2,3] === [1,2,3]

은 같아보이지만 메모리 값으로는

메모리A === 메모리B의 개념이라고 보면 된다.

 

여기서 재밌는 개념이 나오는데 바로 "복사"다

복사를 하게되면 복사를 하게된 매개체와 동일한 메모리값을 사용하게 된다.

 

let num = [1,2,3];

let numCopy = num;

이라고 했을때

 

num === numCopy

는 True로 나오며

 

num.push(5);

라고 하면

num은

1,2,3,5가 되고

numCopy도 1,2,3,5가 된다

 

numCopy.pop()

를 하게 되면 맨 뒤의 숫자가 사라지며

 

num도 numCopy도

1,2,3

이 된다.

 

300x250