[TIL]코어자바스크립트 CH1.데이터 타입

nosiba·2022년 7월 11일
post-thumbnail

정리

메모리와 데이터

0️⃣ 1️⃣ 1️⃣ 0️⃣ 1️⃣ ・ ・ ・
0 또는 1로만 표현할 수 있는 메모리 조각을 bit라 한다.
1 byte = 8 bit
1 byte는 총 256(28)개의 값을 표현할 수 있다.
모든 데이터는 메모리 주솟값을 통해 서로 구분하고 연결한다.

변수와 식별자

  • 변수
    변경 가능한 데이터가 담길수있는 공간 또는 그릇
  • 식별자
    어떤 데이터를 식별하는데 사용하는 이름 즉, 변수명

변수 선언

var a
  • var a의 해석
    변할 수 있는 데이터를 만들고, 이 데이터의 식별자는 a로 한다.

데이터 할당

기본형 데이터의 할당

var a = 'abc'

  1. 빈 메모리 공간을 확보하고, 식별자를 a로 지정
  2. 별도의 공간에 데이터 'abc'를 저장
  3. 식별자 a를 찾아 데이터 'abc'의 주소를 저장

참조형 데이터의 할당

var obj = { a : 1, b : 2 }

참조형 데이터는 객체의 프로퍼티들을 저장하기 위한 별도의 변수 영역을 마련하고(위 그림에서 보라색 영역), 그 주솟값을 데이터 저장공간에 저장

var obj = { a : 1, b : 2 }
var obj1 = obj
obj1.a = 3

변수 obj1을 생성하고 obj를 복사하면, obj1과 obj는 같은 주솟값을 갖는다. ( obj1 = obj = @210 )
obj1의 a 프로퍼티의 값을 3으로 변경하면, 빈 데이터 공간에 3을 저장하고 그 주소를 @350에 저장한다.
a 프로퍼티를 갖는 @350 메모리의 데이터만 변경 되었을 뿐, obj1과 obj는 여전히 @210의 주소를 갖는다.
때문에 등호로 복사할 경우 값 공유가 일어난다.


배운점

등호로 변수를 복사할 경우 값 공유가 일어난 다는 것을 단순 암기식을 외우고 있었는데, 메모리에 데이터가 저장되는 원리를 알고 나니, 값 공유가 왜 일어나는지? 값 공유가 발생하는 이유에 대해 이해할 수 있었다.

0개의 댓글