자바 스크립트의 데이터 타입은 primitive type, Object Type으로 분류된다.
number
:
숫자를 나타내는 데이터 타입이다.
정수와 실수 모두를 포함하며, 특별한 값으로 NaN(Not a Number), Infinity, -Infinity 등이 있다.
string
:
문자열을 나타내는 데이터 타입이다.
작은따옴표(''), 큰따옴표(""), 백틱(``)으로 표현할 수 있으며, 문자열 내부에서 변수나 표현식을 사용하려면 백틱을 사용하는 템플릿 리터럴 방식을 사용할 수 있다.
boolean
:
참(true) 또는 거짓(false)만을 값으로 가지는 데이터 타입이다.
null
:
어떤 값이 의도적으로 비어있음을 나타내는 데이터 타입이다.
Null은 오직 'null' 하나의 값을 가진다.
undefined
:
변수가 선언되었지만 아직 값이 할당되지 않았음을 나타내는 데이터 타입이다.
Undefined는 'undefined' 하나의 값을 가진다.
bigInt
:
매우 큰 정수를 표현하기 위한 데이터 타입이다. 숫자 뒤에 'n'을 붙여서 사용한다.
8바이트보다 더 큰 수를 표현하기 위해 BigInt를 쓴다. (자바스크립트에서 숫자는 8바이트로 잡는다, 소수점도 number로 들어가기 때문이다.)
Symbol
:
ES6에서 추가된 7번째 형태로서 변경 불가능하고 고유한 값을 생성할 때 사용한다.
let student = {
name: "John Doe",
age: 20,
grade: "A"
};
/*
위 예제에서 student는 객체이며, name, age, grade는 키이고,
"John Doe", 20, "A"는 각 키에 대응하는 값이다.
*/
원시 타입과 객체 타입의 주요 차이점 중 하나는 원시 타입은 값 자체가 변경 불가능하다는 것이다.
반면에 객체는 속성을 추가하거나 제거하고 속성의 값을 변경하는 등 객체를 수정할 수 있다.
원시 타입은 값을 직접 비교하는 반면, 객체는 참조를 비교한다는 점이다.
즉, 두 개의 동일한 속성을 가진 두 개의 서로 다른 객체를 만들어도 이들은 서로 다르다고 판단된다.