On a couch

[코어자바스크립트] 01 데이터타입 메모 본문

프론트엔드 공부/Javascript 읽기

[코어자바스크립트] 01 데이터타입 메모

couch 2022. 8. 2. 20:11

Point 1.

변수는 변경 가능한 데이터가 담길 수 있는 공간이고, 식별자는 그 변수의 이름이다.

원시형 데이터타입도 결국 '데이터가 저장되어 있는 주솟값'을 참조한다. (한 단계)

참조형 데이터타입은 ''데이터가 저장되어 있는 주솟값' 을 참조하는 배열/객체의 주솟값'을 참조한다. (두 단계)

보통 초심자들에게는 여기서 한 단계씩을 빼고 설명해주느라 약간의 부정확성이 생긴다고 한다. 

Point 2.

깊은 복사 : 배열/객체의 껍데기와 내부 데이터의 주솟값이 모두 달라지는 복사

얕은 복사 : 배열/객체의 껍데기만 새 주솟값을 갖고, 내부 데이터의 주솟값은 여전히 예전의 것을 공유하는 복사

 

참조형 데이터를 복사하는 메서드는 보통 current depth에서만 주솟값을 교체하므로,

깊은 복사를 하고 싶다면 재귀적으로 모든 내부 데이터에 새 주솟값을 부여해야 한다.

 

Point 3.

undefined에는 두 가지 종류가 있다.

 

(1) undefined를 할당한 요소

(2) 아예 비어있는 요소 == 메모리만 마련해 놓고 값은 대입하지 않은 변수

let arr = [];
arr.length = 3;

console.log(arr); // [empty x 3]

이 경우 배열을 순환하는 메서드 등에서 해당 idx는 아예 존재하지 않는 것으로 치고 순환하지 않는다.

아무것도 할당하지 않은 채로 있다가, 이후 해당 변수에 접근하려고 하면 어쩔 수 없이 undefined를 반환한다.