3. 데이터 타입
📚

3. 데이터 타입

Description
데이터 타입에 관한 내용
Published
2023-04-20
자바스크립트는 8개의 데이터 타입을 제공하는데,
원시 타입(primitive type)과 객체 타입(object/reference type)으로 분류할 수 있다.
원시 타입에는 number, string, boolean, undefined, null, symbol, bigint가 있다.
 

숫자 타입

숫자 타입의 값은 배정밀도 64비트 부동소수점 형식을 따른다.
즉, 모든 수를 실수로 처리하며, 정수만 표현하기 위한 데이터 타입이 별도로 존재하지 않는다.
숫자 타입은 추가적으로 Infinity, -Infinity, NaN(Not A Number)라는 값을 가진다.
 

문자열 타입

문자열 타입은 텍스트 데이터를 나타내는 데 사용하고,
0개 이상의 16비트 유니코드 문자(UTF-16)의 집합으로 전 세계 대부분의 문자를 표현할 수 있다.
 
개행 문자
개행 문자는 텍스트의 한 줄이 끝남을 표시하는 문자 또는 문자열이다.
개행 문자에는 라인피드(LF, Line Feed)와 캐리지 리턴(CR, Carriage Return)이 있다.
윈도우은 CR+LF로 유닉스와 macOS는 LF로 새 줄을 나타낸다.
 

undefined 타입

undefined는 '정의되지 않은'을 의미하며,
자바스크립트에서의 정의란 변수에 값을 할당하여 변수의 실체를 명확히 하는 것을 말한다.
변수 선언에 의해 확보된 메모리 공간을 처음 할당이 이뤄질 때까지,
빈 상태(대부분 비어 있지 않고 쓰레기 값)로 내버려두지 않고 자바스크립트 엔진이 undefined로 초기화한다.
 
선언과 정의
단순히 컴파일러에게 식별자의 존재만 알리는 것은 선언이고,
실제로 컴파일러가 변수를 생성해서 식별자와 메모리 주소가 연결되면 정의로 구분한다.
ECMAScript 사양에서는 변수는 '선언한다'라고 표현하고, 함수는 '정의한다'라고 표현한다.
 

null 타입

null은 변수에 값이 없다는 것을 의도적으로 명시할 때 사용한다.
변수에 null을 할당하는 것은 변수가 이전에 참조하던 값을 더 이상 참조하지 않겠다는 의미로,
참조를 명시적으로 제거하는 것과 같다.
그러나 null을 할당하는 것보다 변수의 스코프를 좁게 만들어 변수 자체를 재빨리 소멸시키는 편이 더 낫다.
함수가 유효한 값을 반환할 수 없는 경우 명시적으로 null을 반환하기도 한다.
 

심벌 타입

심벌은 변경 불가능한 원시 타입의 값으로 다른 값과 중복되지 않는 유일무이한 값이다.
주로 이름이 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용한다.
 

데이터 타입의 필요성

변수에 할당되는 값의 데이터 타입에 따라 확보해야 할 메모리 공간의 크기가 결정된다.
값을 참조하려면 한 번에 읽어 들여야 할 메모리 공간의 크기, 즉 메모리 셀의 개수(바이트 수)를 알아야 한다.
ECMAScript 사양은 문자열과 숫자 타입 외의 데이터 타입의 크기를 명시적으로 규정하고 있지는 않다.
메모리에서 읽어 들인 2진수는 데이터 타입에 따라 다르게 해석될 수 있다.
 

동적 타이핑

자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정되고,
재할당에 의해 변수의 타입은 언제든지 동적으로 변할 수 있다.
즉, 변수는 타입을 갖지 않으며 값에 의해 변수의 타입이 동적으로 결정된다.
 

 
⬇️ 출처