Written by
Nostrss
on
on
[JS #2] 독학중 값(type)
값의 종류(타입)
자바스크립트에서 값의 종류는 아래와 같다
- 원시값(Primitive)
- 수 (Number)
- BigInt
- 문자열 (String)
- 부울 (Boolean)
- 기호 (Symbol)
(ES2015에 새롭게 추가)
- 정의되지 않음 (Undefined)
- 널 (Null)
- 객체 (Object 또는 레퍼런스 값)
- 함수 (Function)
- 배열 (Array)
- 날짜 (Date)
- 정규식 (RegExp)
BigInt
원시값이 가장 안정적으로 나타낼수 있는 최대치를 넘는 큰 정수를 표현하는 내장 객체
최대치 정수 구하기
Number.MAX_SAFE_INTEGER; // 9007199254740991
9007199254740991
를 넘는 정수 범위는 BigInt
타입이라고 하는 것 같다.
그런데 그럼 가장 작은 정수 범위는 마이너스(-)만 붙이면 되는건가?
Number.MIN_SAFE_INTEGER; // -9007199254740991
오 그냥 쳐봤는데 나온다.
즉, BigInt는 -9007199254740991 보다 작고 9007199254740991 보다 큰 정수형을 표현 할 수 있는 타입
이렇게 일단 이해를 해두면 될 것 같다.
NULL(널)
typeof
연산자를 사용하면 어떤 자료형인지 아래와 같이 알 수가 있다.
typeof undefined; // undefined
typeof true; // boolean
typeof "string"; // string
typeof 123; //number
typeof 9007199254740992n; //bigint
typeof Symbol(); //symbol
typeof null;
그런데 널(NULL)
의 경우에는..
typeof null; //object
object
라고 나온다. number 또는 0 이렇게 나오면 오히려 수긍을 하겠는데 객체라고 나온다. 이는 자바스크립트 태생적으로 이렇게 만들어졌고 오류(?)라고 봐야 하는지 모르겠지만, 이대로 유지하기로 했다고 하니 그냥 관습적으로 알고 있어야 할 내용 같다.