[Today I Read | 코어 자바스크립트] 01 데이터 타입

suwoncityboyyy·2023년 4월 15일
0

Today I Read

목록 보기
2/6

1장. 데이터 타입

데이터 타입의 종류 와 메모리,변수

JS의 데이터타입에는 기본형(primitive type)참조형(reference type) 이 있다.

  • 기본형 : 숫자, 문자열, 불리언, null , undefined , 심볼
  • 참조형 : 객체, 배열 , 함수 , 날짜(date) , 정규식(RegExp) , Map, Set

비트(bit)와 바이트(byte)

  • 비트 : 0과 1로 이루어진 하나의 메모리 조각
  • 1byte = 8bit

변수와 식별자

  • 변수 : 변할 수 있는 데이터를 말함.
  • 식별자 : 어떤 데이터를 식별하는데 사용하는 이름 (변수명)
  • 데이터 선언과 할당시에는 데이터성질에 따라 변수영역 데이터영역으로 구분하여 메모리에 값이 저장된다.

기본형 과 참조형 데이터

기본형 데이터들은 모두 불변한다.

var a= 'abc';
a = a + 'def';

위와 같은 코드를 예시로 보면 a를 선언시 문자열을 a에 할당한다. 하지만 다음 코드에서
a에다가 문자열을 추가해 재할당한다.

어떻게 보면 값이 바껴서 불변이 아니라고 착각할 수 있지만,

두번째줄 ‘abcdef’라는 새로운 문자열을 만들어 주소에 저장하는 것이라서
첫번째 줄과 두번째줄의 데이터는 별개의 데이터이다.
즉 변경할 수가 없다는 얘기이다.
결국 한 번 만들어진 값은 가비지 컬렉팅을 당하지 않는한 영원히 변하지 않는다.

참조형 데이터 들은 설정에 따라 가변값도 되고 불변값도 가능하다.
기본형 데이터와 다르게 객체의 변수영역 이 별도로 존재한다는 점이다.
변수의 개수를 참조카운트 라고 하며 참조카운트가 0인 메모리주소는 가비지 컬렉팅 의 수거 대상이 된다.
불변객체를 만드는법은 spread operator, Object.assign메서드 등을 활용하거나 deep copy 라이브러리인 immer.js 등을 쓰면 된다.

profile
주니어 개발자 기술노트

0개의 댓글