Javascript Data Type
Nov 5, 2020
»
javascript
Data Type
0 데이터 타입 형태
- 숫자 타입 :
var value = 123; - 문자 타입 :
var value = "일이삼";
Data Type을 반환하고 싶다면?
typeof 연산자 사용 typeof 연산자와 같이 특별한 기능을 가진 단어를 키워드(ketword)라고 부른다.
var point = 123;
log(typeof point);
var book = "책";
log(typeof book);
[실행결과]
Number
String
0-1 데이터 타입
데이터 타입은 자료형 이라고 표기하기도 한다.
Data는 반드시 Type을 갖는다.
데이터 타입에 따라서 javascript가 처리하는 방법, 혹은 에러가 생길 수 도 있다.
0-2. 데이터 타입 분류
언어 타입과 스펙 타입 두 가지로 나눠지는데
개념만 한 번 읽어보면 좋을 듯 싶다.
| 언어타입 | 스펙타입 |
|---|---|
| JS 프로그램에서 사용할 수 있는 타입 | 언어 알고리즘을 위한 타입 (JS에서 사용 불가) |
| Undefined, Null, Boolean, String, Number, Object | Reference, List, Completion, Property, Descriptor, Data Block, Lexical Environment, Lexical Record 등 |
1. Number Type
- 부호(+,-)를 가진 값
- Number Type 의 특수한 값 3개
- NaN : Not-a-Number
값이 숫자가 아닌 것을 나타내는 값이다. 자바 스크립트는 프로그램이 죽지 않게 하려는 성향이 강하므로 값이 나오지 않을때 NaN으로 값을 표가해준다 - Infinity : 양수 무한대
- -Infinity : 음수 무한대
- NaN : Not-a-Number
2. String Type
- 문자 타입
3. Undefined Type
| Undefined (대문자) | undefined (소문자) |
|---|---|
| 스펙에서 사용 | 값 |
var point;
log(point);
[ 실행결과 ]
undefined
- 변수에 값을 할당하지 않은 것을 나타내는 시맨틱
변수를 선언만 한 것으로 undefined가 초깃값으로 설정된다.
4. Null Type
| Null (대문자) | null (소문자) |
|---|---|
| 스펙에서 사용 | 값 |
기본적으로 Undefined와 유사해보인다. 차이점을 비교해보자.
| null | undefined |
|---|---|
| 값을 할당해야 나옴 | 값을 할당하지 않으면 나옴 |
//1번
var book;
log(book);
//2번
var point = null;
log(point);
[실행결과]
//1번 결과값
undefined
//2번 결과값
null
5. Boolean Type
- true / flase 형태의 타입. 오직 true와 flase 값만 갖는다.
6. Object Type
- {name : value} 형태를 갖는다.
name과 vaule는 묶어서property(프로퍼티)라고 지칭한다.
var book = {
title: "책", point: 123
};
log(book);
위처럼 {} 안에 key:value 형태로 작성한다.
왼쪽 : 프로퍼티 key 또는 name
오른쪽 : 프로퍼티 값
따라서 Object는 프로퍼티 집합이다.
타입 정리
Primitive (프리미티브) Type
1. number type
2. string type
3. boolean type
4. undefined type
🤔 그런데 이상한 점!
log(typeof null);
log(typeof {book : "책"});
[실행결과]
object;
object;
null의 데이터 타입을 입력해보면 object 라고 뜬다. (ES5 기준)
ES6 에서 해당 해결방법이 나왔다고 하니 관련된 것은 나중에 다루겠다.