데이터 타입은 프로그래밍 언어에서 사용할 수 있는 데이터
(숫자, 문자열, 불리언 등)의 종류를 말합니다.
정적 타입 언어(static typed Language)인 C나 Java같은 경우 선언한 변수의 타입과 일치하는 데이터만 저장이 가능합니다.
동적 타입 언어(dynamic Language)인 JavaScript는 선언한 변수는 타입의 속성을 가지고 있지 않다가 변수에 데이터를 할당
할때 데이터 타입이 지정 됩니다. (동적 타입 언어의 특징)
Javasciprt는 원시 타입(primitive type)과 객체타입(reference type)으로 분류됩니다.
구분 | 데이터 타입 | 설명 |
---|---|---|
숫자(number)타입 | 숫자, 정수와 실수 구분없이 하나의 숫자 타입만 존재 | |
문자열(string) 타입 | 문자열 | |
원시타입 | 불리언boolean 타입 | 논리적 참(true)과 거짓(false) |
undefined 타입 | 암묵적으로 할당되는 값 | |
null 타입 | 값이 없다는 것을 의도적으로 명시할 때 사용하는 값 | |
symbol 타입 | ES6 추가 | |
객체타입 | 객체타입 | 객체, 함수, 배열 등 |
C나 자바의 경우 , 정수(소수점 이하가 없는 숫자), 실수(소수점 이하가 있는 숫자)를 구분해서 int, long, float , double 등 다양한 숫자 타입을 제공하지만, 자바스크립트는 독특하게 하나의 숫자 타입만 존재합니다.
숫자 타입은 추가적으로 세가지 특별한 값도 표현할 수 있습니다.
문자열타입은 작은따옴표(''), 큰따옴표("") 또는 백틱(``)으로 텍스트를 감쌉니다. 자바스크립트에서 가장 일반적인 표기법은 작은따옴표를 사용하는 것입니다.
불리언 타입의 값은 논리적 참, 거짓을 나타내는 true와 false중 하나의 리터럴 값을 가집니다.
undefined 타입의 값은 undfined가 유일합니다 변수 선언에 의해 확보된 메모리 공간을 처음 할당이 이뤄질 때까지 빈 상태로 내버려두지 않고 자바스크립트 엔진이 undefined로 초기화 합니다. 즉 변수를 선언한 이후 값을 할당하지 않은 변수를 참조하면 undefined가 반환됩니다.
프로그래밍 언어에서 null은 변수에 값이 없다는 것을 의도적으로 명시할 때 사용 합니다. null을 할당하는 것은 변수가 이전에 참조하던 값을 더이상 참조하지 않겠다는 의미입니다(빈값)
함수가 유효한 값을 반환할 수 없는 경우 명시적으로 null을 반환하기도 합니다.
심벌 값은 다른 값과 중복되지 않는 유일무이한 값입니다, 심벌 이외의 원시 값은 리터럴을 통해 생성하지만 심벌은 함수를 호출해 생성합니다. 이때 생성된 심벌 값은 외부에 노출되지 않으며, 다른 값과 절대 중복되지 않는 유일무이한 값입니다.
자바스크립트는 객체 기반의 언어입니다, 자바스크립트를 이루고 있는 원시타입을 제외한 거의 모든 것이 객체타입이라고 말할 수 있습니다.
Tip. 객체(Object)는 0개이상의 프로퍼티(property) 또는 메서드로 구성된 집합체로 정의 할 수 있습니다.
데이터 타입을 구분짓는 이유에는 효율적인 메모리 관리에 있습니다
, 값은 메모리에 저장하고 참조할 수 있어야 합니다. 메모리에 값을 저장하려면 먼저 확보해야 할 메모리 공간의 크기를 결정해야 합니다. 즉 몇 바이트의 메모리 공간을 사용해야 낭비와 손실 없이 값을 저장할 수 있는지 알아야 합니다.
const
키워드를 사용하는게 좋을 것 같습니다.