[JavaScript] 데이터 타입

codeing999·2022년 8월 8일
0

JavaScript

목록 보기
7/24

데이터 타입의 종류

자바스크립트에는 기본형(원시형, primitive type)과
참조형 (reference type) 크게 두가지 타입이 있다.

  • 기본형 : number, string, boolean, null, undefined 등이 있으며 ES6에는 Symbol이 추가되었다.
  • 참조형 : object, Array, Function, Date, RegExp 등과 ES6에서 추가된 Map, WeakMap, Set, WeakSet 등이 있다.

기본형과 참조형을 구분하는 기준은 무엇일까?
일반적으로 기본형은 할당이나 연산시 복제되고 참조형은 참조된다고 알려져있다.
그러나 엄밀히 말하면 둘 모두 복제를 하긴 한다.
다만 기본형은 값이 담긴 주솟값을 바로 복제하는 반면
참조형은 값이 담긴 주솟값들로 이루어진 묶음을 가리키는 주솟값을 복제한다는 점이 다르다.

식별자와 변수

변수(variable)은 변할 수 있는 데이터를 말하며
식별자(indentifier)는 어떤 데이터를 식별하는 데 사용하는 이름, 즉 변수명이다.

변수선언과 데이터 할당

var a;			//변수 a선언
a = 'abc';		//변수 a에 데이터 할당

var a = 'abc';	//변수 선언과 할당을 한 문장으로 표현

1,2번 줄과 같이 나누어 하든 4번째 줄과 같이 한 문장으로 하든 자바스크립트 엔진은 같은 동작을 수행한다.

  1. 메모리의 비어 있는 공간 하나를 확보한다.
  2. 이 공간의 이름(식별자)를 a라고 지정한다.

여기까지가 변수 선언 과정이다.
할당 과정은 a라는 이름을 가진 주소를 검색해서 그곳에 'abc'를 할당하면 될 것 같지만 실제로는 해당 위치에 문자열 'abc'를 직접 저장하지 않는다.
왜 변수 영역에 값을 직접 대입하지 않고 다른 곳에 데이터를 저장하는 걸까?
이는 데이터 변환을 자유롭게 할 수 있게 함과 동시에 메모리를 더욱 효율적으로 관리하기 위한 것이다.
만약 미리 확보한 공간 내에서만 데이터 변환을 할 수 있다면 가변적인 길이를 가진 문자열 데이터를 변환하기 위해선 추가 공간을 확보하는 작업이 필요해지는데 이는 컴퓨터 연산을 많아지게 하기 때문에 비효율 적이다.

기존 문자열에 'def'를 추가하든 문자열에서 'c'를 제거하든 무조건 기존 공간이 아닌 새로운 별도의 공간에 저장한다.

profile
코딩 공부 ing..

0개의 댓글