JavaScript - 데이터 타입

Jinsung·2021년 8월 19일
3

javascript

목록 보기
2/11
post-thumbnail

🔎 1. 데이터 타입(Data Types)

데이터 타입은 프로그래밍 언어에서 사용할 수 있는 데이터(숫자, 문자열, 불리언 등)의 종류를 말합니다.

정적 타입 언어(static typed Language)인 C나 Java같은 경우 선언한 변수의 타입과 일치하는 데이터만 저장이 가능합니다.

동적 타입 언어(dynamic Language)인 JavaScript는 선언한 변수는 타입의 속성을 가지고 있지 않다가 변수에 데이터를 할당 할때 데이터 타입이 지정 됩니다. (동적 타입 언어의 특징)


📑 2. 데이터 타입 분류

Javasciprt는 원시 타입(primitive type)과 객체타입(reference type)으로 분류됩니다.

구분데이터 타입설명
숫자(number)타입숫자, 정수와 실수 구분없이 하나의 숫자 타입만 존재
문자열(string) 타입문자열
원시타입불리언boolean 타입논리적 참(true)과 거짓(false)
undefined 타입암묵적으로 할당되는 값
null 타입값이 없다는 것을 의도적으로 명시할 때 사용하는 값
symbol 타입ES6 추가
객체타입객체타입객체, 함수, 배열 등

✅ 3. Primitive Type (원시타입 / 기본타입)

🔖 Number(숫자)

C나 자바의 경우 , 정수(소수점 이하가 없는 숫자), 실수(소수점 이하가 있는 숫자)를 구분해서 int, long, float , double 등 다양한 숫자 타입을 제공하지만, 자바스크립트는 독특하게 하나의 숫자 타입만 존재합니다.
숫자 타입은 추가적으로 세가지 특별한 값도 표현할 수 있습니다.

  • Infinity: 양의 무한대
  • -Infinity: 음의 무한대
  • NaN : 산술 연산 불가(not-a-number)

🔖 String(문자열)

문자열타입은 작은따옴표(''), 큰따옴표("") 또는 백틱(``)으로 텍스트를 감쌉니다. 자바스크립트에서 가장 일반적인 표기법은 작은따옴표를 사용하는 것입니다.

🔖 Boolean (true/false)

불리언 타입의 값은 논리적 참, 거짓을 나타내는 true와 false중 하나의 리터럴 값을 가집니다.

🔖 undefined

undefined 타입의 값은 undfined가 유일합니다 변수 선언에 의해 확보된 메모리 공간을 처음 할당이 이뤄질 때까지 빈 상태로 내버려두지 않고 자바스크립트 엔진이 undefined로 초기화 합니다. 즉 변수를 선언한 이후 값을 할당하지 않은 변수를 참조하면 undefined가 반환됩니다.

🔖 null

프로그래밍 언어에서 null은 변수에 값이 없다는 것을 의도적으로 명시할 때 사용 합니다. null을 할당하는 것은 변수가 이전에 참조하던 값을 더이상 참조하지 않겠다는 의미입니다(빈값)
함수가 유효한 값을 반환할 수 없는 경우 명시적으로 null을 반환하기도 합니다.

🔖 symbol (ES6추가)

심벌 값은 다른 값과 중복되지 않는 유일무이한 값입니다, 심벌 이외의 원시 값은 리터럴을 통해 생성하지만 심벌은 함수를 호출해 생성합니다. 이때 생성된 심벌 값은 외부에 노출되지 않으며, 다른 값과 절대 중복되지 않는 유일무이한 값입니다.


✅ 4. Reference Type (객체타입 / 참조타입)

자바스크립트는 객체 기반의 언어입니다, 자바스크립트를 이루고 있는 원시타입을 제외한 거의 모든 것이 객체타입이라고 말할 수 있습니다.

Tip. 객체(Object)는 0개이상의 프로퍼티(property) 또는 메서드로 구성된 집합체로 정의 할 수 있습니다.

✅ 5. 데이터 타입의 필요성

데이터 타입을 구분짓는 이유에는 효율적인 메모리 관리에 있습니다, 값은 메모리에 저장하고 참조할 수 있어야 합니다. 메모리에 값을 저장하려면 먼저 확보해야 할 메모리 공간의 크기를 결정해야 합니다. 즉 몇 바이트의 메모리 공간을 사용해야 낭비와 손실 없이 값을 저장할 수 있는지 알아야 합니다.

🙏 마치며

  • 자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정되며, 재할당에 의해 변수와 타입은 언제든지 동적으로 변할 수 있습니다(동적 타이핑)
  • 동적 타입의 언어는 유연성은 높지만 신뢰성이 떨어질 수 있어 안전성을 고려하여 변수의 유효 범위(스코프)는 최대한 좁게 만들고 값의 변동이 없는 경우 const키워드를 사용하는게 좋을 것 같습니다.

0개의 댓글