데이터 타입은 프로그래밍 언어의 기본적인 구성요소
데이터 타입
이란 변수를 선언할 때, 숫자나 문자열 또는 이외의 것들을 변수에 저장하는 데이터 종류
자바스크립트는 변수에 타입이 없으므로, 모든 타입의 데이터를 저장할 수 있다.
(변수에 저장된 데이터 타입을 동적으로 바꿀 수 있다.)
var num = '921';
console.log(num); // 921
num = '숫자';
console.log(num); // 숫자
기본형
과 참조형
기본형(Primitive Type) : 값을 그대로 할당
• Number
• String
• Boolean
• null
• undefined
• +ES6:Symbol
참조형(Reference Type) : 값이 저장된 주소값을 할당(참조함)
• Object
- Array
◦ Function
◦ RegExp(정규표현식)
◦ +ES6:map, set, weakmap, weakset
⦿ Number(숫자)
자바스크립트는 타입이 없어 숫자를 모두 64비트 부동소수점으로 표현
⦿ String(문자열)
큰 따옴표("
)나 작은 따옴표('
)로 둘러싸인 문자의 집합
var str = "이것은 '데이터 타입'에 관한 설명.";
var str2 = '이것은 "데이터 타입"에 관한 설명.';
console.log(str); // 이것은 '데이터 타입'에 관한 설명.
console.log(str2); // 이것은 "데이터 타입"에 관한 설명.
var num = "" // 빈 문자열 의미
⦿ Boolean(참/거짓)
Boolean
타입은 true(참)
, false(거짓)
중 하나의 리터럴 값을 가진다.
true는 1
, false는 0
의 값
var isFinished = true;
var isEditing = false;
⦿ null/undefined
null
은 아무것도 없음을 의미하며, 의도적으로 비어있는 값을 넣을 때 사용
undefined
는 초기화되지 않았거나 아직 값이 할당되지 않았음을 의미
null == undefined; // true
null === undefined; // false
⦿ Object
객체(Object)
는 다수의 프로퍼티(property)나 메소드(method)를 하나의 이름으로 묶어놓은 일종의 집합체
객체를 선언할 때에는 중괄호{}
사용, 이름(key):값(value)
의 형태로 작성.
이 데이터 한쌍 (이름:값)을 객체의 프로퍼티
라 한다.
var foo = {
name: "Rocky",
age : 4,
};
console.log(foo.name); // Rocky
console.log(foo.age); // 4
객체에는 아래의 항목들이 포함
☛Array
☛Function
☛RegExp
변수를 선언
하면 데이터가 담길 공간을 확보하고, 확보된 데이터의 주소값을 가지고 변수명과 매칭시키는 선언과정은 동일하나, 할당
과정에서 차이가 있다.
var a;
a = 10;
변수 a를 선언하면 데이터가 담길 공간(임의의 주소)를 확보
하고, 확보된 데이터의 주소값을 가지고 변수명과 매칭
시킨다.
그리고 매칭된 주소로 이동하여 데이터 10을 저장
한다.
정리
: 비어있는 데이터 공간 확보 -> 변수명과 매칭 -> 매칭 주소에 데이터 저장
var obj = {
a : 1,
b : 'hi';
}
프로퍼티는 변수와 비슷한 성질을 갖고 있어 변수명과 실제 데이터가 주소겂을 통해 연결된 것처럼 key와 value도 같은 동작을 한다.
우선 각 프로퍼티명과(여기서는 a와 b) 해당 프로퍼티의 값(1,hi)이 담길 주소를 매칭하기 위한 공간(임의의 주소)을 확보
한다. 프로퍼티와 확보된 주소를 매칭
시킨 다음, 각각의 주소값마다 데이터를 할당
한다.
이러한 과정을 데이터공간에 기본형 데이터가 담길 때까지 반복한다.
결국, 참조형 데이터는 기본형 데이터의 집합이라 볼 수 있다
정리
: 비어있는 데이터 공간 확보 -> 객체 속 프로퍼티에 대한 공간을 또 다시 확보 -> 객체의 프로퍼티명과 주소를 매칭 -> 확보했던 두 번째 주소에 데이터 할당