본문 바로가기
JAVASCRIPT

[JS][네이티브] Date() and Error()

by KBS 2022. 2. 8.
728x90

Date() and Error()

네이티브 생성자 Date()Error()는 리터럴 형식이 없으므로 다른 네이티브에 비해 유용하다.

 

date객체 값은 new Date()로 생성한다. 이 생성자는 날짜/시작을 인자로 받는다.(인자를 생략하면 현재 날짜/시각으로 대신한다.)

 

date객체는 유닉스 타임스탬프 값을 얻는 용도로 가장 많이 쓰일 것이다. date객체의 인스턴스로부터 getTime()을 호출하면 된다. 하지만 ES5에 정의된 정적 도우미 Date.now()를 사용하는 게 더 쉽다. ES5 이전 브라우저에선 다음 폴리필을 사용하자.

 

if (!Date.now) {
  Date.now = function () {
    return new Date().getTime();
  };
}

 

 

new 키워드 없이 Date()를 호출하면 현재 날짜/시작에 해당하는 문자열을 반환한다. 이 문자열의 정확한 형식은 로케일에 따라 달라진다.

 

Error()생성자는 앞에 new가 있든 없든 결과는 같다. error 객체의 주 용도는 현재의 실행 스택 콘텍스트를 포작하여 객체에 담는 것이다. 이 실행 스택 콘텍스트는 함수 호출 스택, errror 객체가 만들어진 줄 번호 등 디버깅에 도움이 될 만한 정보들을 담고 잇다.

error 객체는 보통 throw 연산자와 함께 사용한다.

 

function foo(x) {
  if (!x) {
    throw new Error("x를 주세요!");
  }
  // ...
}

 

Error 객체 인스턴스에는 적어도 message 프로퍼티는 들어 이쏙, type 등 다른 프로퍼티가 포함되어 있을 대도 있다. 그러나 사람이 읽기 편한 포맷으로 에러 메시지를 보려면 방금 전 언급한 stack 프로퍼티 대신, 그냥 error 객체의 toString()을 호출하는 것이 가장 좋다.

 

굳이 따진다면 일반적인 Error() 네이티브 이외에도 구체적인 에러 타입에 특화된 네이티브들이 있다. EvalError(), RangeError(), ReferenceError(), SyntaxError(), TypeError(), UrlError() 네이티브들은 코드에서 실제로 예외가 발생하면 자동으로 전져지므로 직접 사용할 일은 거의 없다.


참고

  • You Don't Know JS ( 한빛 미디어 )
728x90

댓글