1. 2일 전

    Date, JSON 객체

    Date, JSON 객체의 이모저모

  2. 19일 전

    ES6 - Generator

    Generation 함수 사용하기

  3. 26일 전

    ES6 - iteration & for ... of

    iteration과 활용

  4. 1달 전

    ES6 - Symbol

    왜 Symbol이 필요할까?

  5. 1달 전

    ES6 - Rest/Spread 연산자

    코드를 더 간결하게

  6. 2달 전

    ES6 - Promise

    콜백 지옥을 벗어나자

  7. 2달 전

    Webpack(3) - Plugin

    Plugin으로 더 강력한 Webpack

  8. 2달 전

    ES6 화살표 함수

    화살표 함수에 대해 깊게 이해하기

  9. 2달 전

    32. 이벤트

    이벤트 루프

  10. 2달 전

    JS가 객체지향언어라 할 수 있는 이유

    대체가능성, 내적동질성

  11. 3달 전

    Webpack(2) - Loader

    Loader로 다양한 파일 다루기

  12. 3달 전

    비동기 처리

    JavaScript에서 비동기 처리

  13. 3달 전

    19. 클로져

    JavaScript에서 클로저란?

  14. 3달 전

    18. 실행컨텍스트

    JavaScript에서 실행컨텍스트

  15. 3달 전

    17. this

    JavaScript에서 this

  16. 3달 전

    Webpack(1) - 기본편

    Webpack 대한 기본 이해

  17. 4달 전

    Babel(4) - polyfill

    더 많은 브라우저 지원하기

  18. 5달 전

    Babel(3) - 설정편

    설정하는 다양한 방법

  19. 5달 전

    Babel(2) - 실행편

    실습을 통한 더 깊은 이해

  20. 5달 전

    Babel(1) - 기본편

    babel에 대한 기본 이해

Tamm자바스크립트 웹 개발 환경을 좋아하고 사람들에게 재미를 주는 것에 관심이 많은 개발자 입니다.

Date, JSON 객체

Date, JSON 객체의 이모저모

featured image thumbnail for post Date, JSON 객체

javascript info: Date

5. 7 Date 객체와 날짜

Date 객체는 UTC 기준(UTC+0) 1970년 1월 1일 0시 0분 0초가 기준이다. 이 시간을 기준으로 흘러간 밀리초를 나타내는 정수를 타임스탬프라고 한다.

날짜는 new Date() 로 생성하고 인자를 넣을 수 있다. 인자를 넣지 않으면 오늘이 기본 값이다.

type DateConstructor = {
    (dateString: string) => Date;
    (year: number, month: number, date: number, hours: number, minutes: number, seconds: number, ms: number) => Date
}

getYear()는 비표준이다. deprecated

getDay();
// 0 일요일, 1 월요일 ... 6: 토요일
let date = new Date(2013, 0, 32); // 2013132일은 없지만
alert(date); // 201321일이 출력됩니다.
new Date().getTime()  <<<< Date.now()
new Date(null) → Thu Jan 01 1970 09:00:00 GMT+0900 (한국 표준시)

new Date(""), new Date(undefined), new Date("dfsfd") → Invalid Date

퀴즈 스터디 때 퀴즈


다음의 결과를 예측해 보시오.

  • new Date(null)
  • new Date(undefined)
  • new Date(NaN)
  • new Date("")
  • new Date([])
  • new Date(true)
  • new Date(true, true)

5.8 JSON

javascript info: JSON

JSON 객체에는 원하는 프로퍼티만 직렬화 하는 것이 가능하다.

let room = {
  number: 23,
};

let meetup = {
  title: "Conference",
  participants: [{ name: "John" }, { name: "Alice" }],
  place: room, // meetup은 room을 참조합니다.
};

room.occupiedBy = meetup; // room references meetup

alert(JSON.stringify(meetup, ["title", "participants"]));
// {"title":"Conference","participants":[{},{}]}

toString과 마찬가지로 toJSON을 통해 객체를 직렬화 하는 방법을 바꿀 수 있다.

riviver을 사용하면 JSON 을 파싱할 때 더 강력해 질 수 있다.

type JSON.parse = {
    (jsonString: string) => AnyObject
    (jsonString: string, (key: string, value: any) => any) => AnyObject
}

let schedule = `{
  "meetups": [
    {"title":"Conference","date":"2017-11-30T12:00:00.000Z"},
    {"title":"Birthday","date":"2017-04-18T12:00:00.000Z"}
  ]
}`;

schedule = JSON.parse(schedule, function(key, value) {
  if (key == 'date') return new Date(value);
  return value;
});

alert( schedule.meetups[1].date.getDate() ); // 잘 동작합니다!