자바스크립트 데이터 타입

·2022년 6월 6일
0

자바스크립트의 데이터 타입

  • 기본형 - 할당이나 연산시 복제됨, 불변성
    : Number, String, Boolean, Null, Undefined,(Symbol)
  • 참조형 - 주소값을 복제함
    : Array,Object,Function,Date,RegExp,(Map,WeakMap,Set,WeakSet)

()은 Es6에서 추가됨


데이터 타입

1바이트는 8개의 비트로 구성됨. 자바스크립트는 64비트의 메모리공간을 할당.
효율적인 데이터 관리를 위해 모든 데이터는 바이트 단위의 메모리 주소값으로 구분하고 연결함

식별자 - 변수명. 데이터를 식별하는데 사용하는 이름
변수 - 변할 수 있는 데이터


변수 선언과 데이터 할당

var a = abc;

위의 변수 선언은
변할 수 있는 데이터를 만들고 이의 식별자를 a로 한다는 것이다. 그리고 그 변수에 문자열 'abc'를 할당했다.

이렇게 될 경우 데이터할당의 과정은 아래와 같다.

위의 var a = abc처럼 문자열 'abc'를 처음 할당해주고 'abcd'로 다시 할당하려고 하면 해당 데이터영역의 주소에서 데이터를 수정하는 것이 아닌 다른 데이터 영역을 만들어 그곳에 'abcd'를 넣어준다.

왜 이렇게 하는 지에 대한 이유는 앞서 언급한 메모리 공간을 생각해야한다.
만약 중간에 있는 데이터의 크기가 늘어났을 경우, 뒤에 저장된 데이터를 전부 뒤로 옮기고 이동시킨 주소를 다시 연결해야한다. 이는 컴퓨터가 처리해야 할 연산을 늘리게 되기에 바뀐 데이터는 무조건 새로 만들어서 별도의 공간에 저장한다. 그리고 식별자는 새로운 만들어진 데이터의 주소를 바라보게 한다.


질문

  • 변수와 식별자에 대해 설명해보자
  • 데이터 할당 시 변수 영역과 데이터 영역을 구분지은 이유는?
  • 데이터 할당의 콜스택과 힙스택 방식에 대해 알아보기

이미지 출처
https://velog.io/@dyongdi/JS-%ED%97%B7%EA%B0%88%EB%A6%AC%EB%8A%94-%EB%B3%B5%EC%82%AC-%EC%A0%95%EB%A6%AC%EC%A0%95%EB%A6%AC

내용 참고
코어 자바스크립트/위키북스

profile
나 예인쓰, 응애인디

0개의 댓글