이번 포스팅에서는 Date, Date(), new Date()의 차이점을 소개합니다.
목차
Date
ECMAScript의 타입에는 Date 타입이 존재하지 않으며, 아래 8개의 타입이 존재합니다.
- undefined
- null
- boolean
- string
- symbol
- number
- bigint
- object
값의 타입을 반환하는 typeof
연산자는 값의 정확한 타입을 반환하지 않는 문제가 있습니다.
typeof
연산자로 null
의 타입을 확인하면 'object'가 반환되지만, instanceof
연산자로 null
타입이 Object인지 확인하면 false
가 반환됩니다.
typeof null
// 'object'
null instanceof Object
// false
ECMAScript는 내장 객체인 Date를 생성자 함수로 호출할 수 있습니다.
다음은 typeof
연산자로 내장 객체인 Date 타입을 확인하는 예제입니다.
typeof Date
// 'function'
typeof
연산자는 생성자 함수로 호출할 수 있는 객체를 'function'으로 반환합니다.
정확한 타입을 확인하려면 instanceof
연산자를 사용합니다.
Date instanceof Object
// true
Date instanceof Function
// true
typeof
와 instanceof
의 차이점, typeof
가 함수 객체를 'function'으로 반환하는 이유에 대해서는 추후 포스팅할 예정이며, Date는 "생성자 함수가 존재하는 내장 객체"라고 이해하면 됩니다.
Date()
new
키워드가 없는 Date()
함수는 인수를 무시하며, 현재 날짜 및 시간을 나타내는 문자열을 반환합니다.
Date('asd')
// 'Wed Dec 22 2021 19:58:27 GMT+0900 (한국 표준시)'
Date()
// 'Wed Dec 22 2021 19:59:10 GMT+0900 (한국 표준시)'
다음은 typeof
연산자를 사용하여 문자열이 반환되는지 확인하는 예제입니다.
typeof Date()
// 'string'
new Date()
new
키워드를 사용한 new Date()
는 Date 타입인 새로운 객체를 생성합니다.
인수를 생략하면, 현재 날짜 및 시간을 나타내는 Date 객체가 생성됩니다. 인자를 전달하면 인자 형태에 따라 Date 객체가 생성됩니다. Date 생성자의 인자 형태는 다음 네 가지입니다.
- 값을 생략
- UNIX 타임 스태프 값
- 타임 스태프 문자열
- 개별 날짜 및 시간
다음은 new Date()
를 사용하여 Date 객체를 생성하는 예제입니다.
new Date();
// Thu Dec 23 2021 00:24:26 GMT+0900 (한국 표준시)
new Date('2020-01-01');
// Wed Jan 01 2020 09:00:00 GMT+0900 (한국 표준시)
new Date(2021, 11, 23);
// Thu Dec 23 2021 00:00:00 GMT+0900 (한국 표준시)
new Date(2021, 11, 23, 12, 23, 00);
// Thu Dec 23 2021 12:23:00 GMT+0900 (한국 표준시)
다음은 typeof
연산자를 사용하여 객체가 반환되는지 확인하는 예제입니다.
typeof new Date()
// 'object'
'JavaScript > 객체' 카테고리의 다른 글
[JavaScript]동적으로 프로퍼티 추가 (0) | 2022.06.24 |
---|---|
[JavaScript]Map 객체 정렬하는 방법 (0) | 2022.01.03 |
[JavaScript]프로토타입(Prototype)이란? (0) | 2021.12.27 |
[JavaScript]Date 객체 유효성 체크 (0) | 2021.12.23 |
[JavaScript]객체 속성(writable, enumerable, configurable) (0) | 2021.12.07 |
댓글