귀여운 눈높이에서 작성된, 🐰

하루 한 걸음씩, 성장 하는 중 입니다 🫶🏻

Studying/JavaScript

자바스크립트 공부하기 - 빌트인 생성자 함수 Date

creamymood 2025. 3. 20. 01:58

지난 게시글에 이어서..

date에 대해 알아보기 전에, 궁금한 점 미리 짚고 넘어가기


Q:  date는 기본적으로 자바스크립트에서 제공하는 기능인데 이걸 왜 생성자라고 불러 ?
 

A : 자바스크립트에서 Date는 기본적으로 제공되는 내장 객체이지만, 이도 사실 생성자 함수의 역할을 해. 왜냐면 new Date()와 같이 new 키워드를 사용해서 새로운 객체를 만들 수 있기 때문이야.

생성자 함수라는 말은 **"객체를 생성하는 함수"**라는 의미로, Date처럼 자바스크립트에서 기본적으로 제공되는 객체도 new를 통해 새로운 객체를 만들 수 있기 때문에 생성자 함수라고 불리는 거야.

다만, Date는 특별히 날짜와 시간과 관련된 작업을 쉽게 처리할 수 있도록 내장되어 있는 거고, 우리가 만든 사용자 정의 생성자 함수들과 같은 원리로 동작하는 거지!

 

Q : 예를 들어, const now = new Date() 이렇게 상수화 하잖아 ? 근데 여기서 왜  date 앞에 new가 붙는거야 ? 빌트인 함수잖아.

A : Date 앞에 new가 붙는 이유 ! Date는 생성자 함수(Constructor Function) 이기 때문이야. 자바스크립트에서 new 키워드를 사용하면 새로운 인스턴스(객체) 를 생성해.

const now = new Date();
이렇게 하면 Date 생성자를 호출해서 현재 날짜와 시간을 가지는 새로운 Date 객체가 만들어지는 거야.
 

만약 new 없이 Date()를 호출하면 단순히 문자열로 변환된 현재 날짜가 반환될 거야.

>>

console.log(Date()); // "Tue Mar 18 2025 12:34:56 GMT+0900 (KST)"​

 

하지만 new Date()는 Date 객체를 반환해.

>>

console.log(new Date()); // Date 객체 (실제 날짜/시간을 조작할 수 있음)

 

 

Q : 빌트인 함수임에도 왜 Date 이렇게 생성자 처럼 대문자로 쓰는지 ?

A : 자바스크립트의 빌트인 객체(Built-in Objects) 중에는 함수처럼 호출되는 것생성자로 사용하는 것이 나뉘어 있어.

Date는 생성자로 사용해야 의미 있는 데이터(날짜 객체)를 만들 수 있는 생성자 함수야.
예를 들어 Array, RegExp, Map 같은 것들도 생성자로 사용해야 해.