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
'개발일지 > 임시카테고리' 카테고리의 다른 글
django - ProgrammingError at / (0) | 2022.12.05 |
---|---|
javascript - 대괄호 입력방식이 닷 방식보다 낮다. (0) | 2022.12.03 |
*매우중요 javascript - concat, includes, indexOf, reverse, slice, splice (0) | 2022.12.03 |
javascript - push, pop, shift, unshift (삽입 및 삭제 관련) (1) | 2022.11.27 |
javascript - 배열의 특징 (글씨 부분변경, 전체 변경) (1) | 2022.11.27 |