코어 자바스크립트 - 데이터 타입

박효상·2022년 3월 24일
0

Javascript

목록 보기
2/9
post-thumbnail

CS 기본 개념

  • 변수 : 변할 수 있는 데이터가 담길 수 있는 메모리 공간
  • 식별자 : 변수명, 즉 데이터를 식별하는데 사용하는 이름. 인덱스 또한 식별자
  • 모든 데이터는 메모리 주솟값(바이트 단위의 식별자)을 통해 서로 구분하고 연결
  • 메모리를 변수 영역과 데이터 영역으로 분리하는 이유
    • 중복된 데이터에 대한 처리 효율 증가
    • 하나의 영역에 식별자와 데이터를 둘 다 담을 경우, 데이터 수정이 이뤄질 시 변환된 데이터 크기에 맞게 메모리 공간 변화도 이뤄져야 하는데 이는 리소스를 너무 많이 잡아먹는 행동이다
  • 참조 카운트가 0인 메모리 주소는 Garbage Collector(메모리 사용량이 포화 상태일 때 불필요한 메모리를 초기화하여 비우는 역할)의 수거 대상이 된다
  • undefined : 어떤 변수에 값이 존재하지 않아 자바스크립트가 자동으로 부여한 '없음'을 표현하는 값
  • null : 사용자가 명시적으로 '없음'을 표현하기 위해 대입한 값

Data Type

기본형

  • 종류 : Number, String, Boolean, Null, Undefined
  • 성질
    • 불변성(Immutability) : 선언과 값 할당시 담긴 데이터 값은 수정이 불가능하며, 복제를 하여 수정을 할 때, 데이터 원본 회손이 없다
    • 값 할당시 값이 담긴 메모리 공간의 주솟값을 복제한다

참조형

  • 종류 : Object - Array, Function, Date, RegExp, Map, Set
  • 성질
    • 가변성(Variability) : 선언과 값 할당시 담긴 데이터 값은 수정이 가능하며, 복제를 하여 수정을 할 때, 데이터 원본 회손이 발생한다
    • 값 할당시 값이 담긴 주솟값들로 이루어진 묶음을 가리키는 주솟값을 복제한다
  • 복사 : 복사시 참조형 데이터는 기본형과는 달리 내부의 프로퍼티들도 복사하여야 한다. 그래야 복사를 해도 사본을 바꾸면 원본도 바뀌고, 원본을 바꾸면 사본도 바뀌는 가변성이 아닌 불변성으로 변하게 된다
    • 얕은 복사 (Shallow Copy) : 참조형 안에 기본형 타입의 프로퍼티만 존재할 시 필요한 처리 방법.
    • 깊은 복사 (Deep Copy) : 참조형 안에 참조형의 형태로 중첩일 시 필요한 처리 방법. 참조형 타입 내의 참조형 타입 데이터는 얕은 복사로는 불변성을 띄지 않아서 2가지 방식 중 하나의 깊은 복사 처리가 필요하다
      • 얕은 복사에 재귀적 용법을 곁들인 복사 방법으로 모든 프로퍼티를 일일히 복사하는 방법
      • JSON Parse와 Stringfy 메서드를 이용한 방법
profile
집념의 백엔드 개발자

0개의 댓글