자바스크립트 표준 내장 객체 - Date, Object, JSON

임채은·2023년 6월 2일
0

js

목록 보기
8/8

01 날짜

1-1) Date(), Date(str), Date(y, m, d, h, m, s)

  • 매개변수가 없다면, 생성 순간의 날짜와 시간을 나타내는 Date 객체를 반환합니다.
  • 입력 타입 : String 혹은 Number
  • 반환 타입 : Date
const date1 = new Date();
console.log(date1);  // Fri Jun 02 2023 21:57:16 GMT+0900 (한국 표준시)

const date2 = new Date(2022, 11, 16, 17, 12, 57, 30);
console.log(date2);  // Fri Dec 16 2022 17:12:57 GMT+0900 (한국 표준시)

const date3 = new Date("December 17, 1995 03:24:00");
console.log(date3);  // Sun Dec 17 1995 03:24:00 GMT+0900 (한국 표준시)

1-2) getFullYear() 와 setFullYear()

  • 대상 날짜의 년도를 반환/지정 합니다.
  • 입력 타입 : Number
  • 반환 타입 : X
const date = new Date();

console.log(date);  // Fri Jun 02 2023 21:58:15 GMT+0900 (한국 표준시)
console.log(date.getFullYear());  // 2023

date.setFullYear(2020);
console.log(date);  // Tue Jun 02 2020 21:58:15 GMT+0900 (한국 표준시)
console.log(date.getFullYear());  // 2020

1-3) getMonth() 와 setMonth()

  • 대상 날짜의 월(0~11)을 반환/지정 합니다. (0부터 시작)
  • 입력 타입 : X
  • 반환 타입 : Number
const date = new Date();

console.log(date);  // Fri Jun 02 2023 21:58:58 GMT+0900 (한국 표준시)
console.log(date.getMonth());  // 5

date.setMonth(0);
console.log(date);  // Mon Jan 02 2023 21:58:58 GMT+0900 (한국 표준시)
console.log(date.getMonth());  // 0

1-4) getDate() 와 setDate()

  • 대상 날짜의 일(1~31)을 반환/지정 합니다.
  • 입력 타입 : X
  • 반환 타입 : Number
const date = new Date();

console.log(date);  // Fri Jun 02 2023 21:59:44 GMT+0900 (한국 표준시)
console.log(date.getDate());  // 2

date.setDate(11);
console.log(date);  // Sun Jun 11 2023 21:59:44 GMT+0900 (한국 표준시)
console.log(date.getDate()); // 11

1-5) getHours() 와 setHours()

  • 대상 날짜의 시간(0~23)을 반환/지정 합니다.
  • 입력 타입 : X
  • 반환 타입 : Number
const date = new Date();

console.log(date);  // Fri Jun 02 2023 22:00:38 GMT+0900 (한국 표준시)
console.log(date.getHours());  // 22

date.setHours(19);
console.log(date);  // Fri Jun 02 2023 19:00:38 GMT+0900 (한국 표준시)
console.log(date.getHours());  // 19

1-6) getMinutes() 와 setMinutes()

  • 대상 날짜의 분(0~59)을 반환/지정 합니다.
  • 입력 타입 : X
  • 반환 타입 : Number
const date = new Date();

console.log(date);  // Fri Jun 02 2023 22:01:20 GMT+0900 (한국 표준시)
console.log(date.getMinutes());  // 1

date.setMinutes(48);
console.log(date);  // Fri Jun 02 2023 22:48:20 GMT+0900 (한국 표준시)
console.log(date.getMinutes());  // 48

1-7) getSeconds() 와 setSeconds()

  • 대상 날짜의 초(0~59)를 반환/지정합니다.
  • 입력 타입 : X
  • 반환 타입 : Number
const date = new Date();

console.log(date);  // Fri Jun 02 2023 22:02:01 GMT+0900 (한국 표준시)
console.log(date.getSeconds());  // 1

date.setSeconds(58);
console.log(date);  // Fri Jun 02 2023 22:02:58 GMT+0900 (한국 표준시)
console.log(date.getSeconds());  // 58

1-8) getDay()

  • 대상 날짜의 요일(0~6)을 반환합니다.
  • 입력 타입 : X
  • 반환 타입 : Number
const date = new Date();
const day = date.getDay();

console.log(date);  // Fri Jun 02 2023 22:02:40 GMT+0900 (한국 표준시)
console.log(day);  // 5
console.log(getDayKo(day));  // 금요일

function getDayKo(day) {
  switch (day) {
    case 0:
      return "일요일";
    case 1:
      return "월요일";
    case 2:
      return "화요일";
    case 3:
      return "수요일";
    case 4:
      return "목요일";
    case 5:
      return "금요일";
    case 6:
      return "토요일";
  }
}

1-9) getTime() 와 setTime()

  • UNIX 시간("1970-01-01 00:00:00")으로부터 경과한 대상 날짜의 밀리초(ms)를 반환/지정합니다.
  • 입력 타입 : Number
  • 반환 타입 : Number
const date = new Date();

console.log(date);  // Fri Jun 02 2023 22:03:21 GMT+0900 (한국 표준시)
console.log(date.getTime());  // 1685711001119

date.setTime(170000000000);
console.log(date);  // Thu May 22 1975 23:13:20 GMT+0900 (한국 표준시)
console.log(date.getTime());  // 170000000000
Date.prototype.isAfter = function (date) {
  const a = this.getTime();
  const b = date.getTime();
  return a > b;
};

const date1 = new Date("Fri Jun 02 2023 21:00:00 GMT+0900 (한국 표준시)");
const date2 = new Date("Fri Jun 02 2023 22:00:00 GMT+0900 (한국 표준시)");
console.log(date1.isAfter(date2));  // false
console.log(date2.isAfter(date1));  // true

1-10) Date.now()

  • UNIX 시간("1970-01-01 00:00:00")으로부터 경과한 메소드 호출 날짜의 밀리초(ms)를 반환/지정합니다.
  • 입력 타입 : X
  • 반환 타입 : Number
const time = new Date().getTime();

console.log(Date.now()); // 1685711180711
console.log(time); // 1685711180711

setTimeout(() => {
  console.log(Date.now()); // 1685711181716
  console.log(time); // 1685711180711
}, 1000);



02 객체

2-1) Object.assign(target, source1, source2, ...)

  • source1, source2 ... 객체로 부터 target 객체로 속성을 복사하고 반환합니다.
  • 입력타입 : Object
  • 반환타입 : Object
const target = { a: 1, b: 2 };
const source1 = { b: 3, c: 4 };
const source2 = { c: 5, d: 6 };
const result = Object.assign(target, source1, source2);

console.log(target);  // { a: 1, b: 3, c: 5, d: 6 }
console.log(result);  // { a: 1, b: 3, c: 5, d: 6 }
const target = { a: 1, b: 2 };
const source1 = { b: 3, c: 4 };
const source2 = { c: 5, d: 6 };

const result1 = Object.assign({}, target, source1, source2);
const result2 = { ...target, ...source1, ...source2 };

console.log(target);  // { a: 1, b: 2 }
console.log(result1);  // { a: 1, b: 3, c: 5, d: 6 }
console.log(result2);  // { a: 1, b: 3, c: 5, d: 6 }

2-2) Object.entries(obj)

  • obj 객체의 각 key 와 value 를 하나의 배열로 만들어 2차원 배열을 반환합니다.
  • 입력타입 : Object
  • 반환타입 : Array
const user = {
  name: "hong",
  age: 100,
  isValid: true,
};
console.log(Object.entries(user));
// [["name", "hong"], ["age", 100], ["isValid", true] ]

for (const [key, value] of Object.entries(user)) {
  console.log(key, value);
}

2-3) Object.keys(obj)

  • obj 객체의 key 를 나열한 배열을 반환합니다.
  • 입력타입 : Object
  • 반환타입 : Array
const user = {
  name: "hong",
  age: 100,
  isValid: true,
  email: "hong@gmail.com",
};

console.log(Object.keys(user));  // ['name', 'age', 'isValid', 'email']

2-4) Object.values(obj)

  • obj 객체의 value 를 나열한 배열을 반환합니다.
  • 입력타입 : Object
  • 반환타입 : Array
const user = {
  name: "hong",
  age: 100,
  isValid: true,
  email: "hong@gmail.com",
};

console.log(Object.values(user));  // ['hong', 100, true, 'hong@gmail.com']



03 JSON

  • JavaScript Object Notation 의 약자로, 데이터 전달을 위한 표준 포맷입니다.
  • 데이터 타입은 String, Number, Boolean, Null, Object, Array 만 사용합니다.
  • String 은 큰 따옴표로만 표현합니다.
  • 후행 쉼표는 사용 불가능합니다.
  • 확장자는 .json 입니다.

JSON.stringify(data)

  • json 데이터를 문자열로 변환합니다.
  • 입력타입 : String, Number, Boolean, Null, Object, Array
  • 반환타입 : String

JSON.parse(data)

  • 문자열을 json 데이터로 변환합니다.
  • 입력타입 : String
  • 반환타입 : String, Number, Boolean, Null, Object, Array
console.log(JSON.stringify("Hello world!"));  // "Hello world!"
console.log(JSON.stringify(123));  // 123
console.log(JSON.stringify(false));  // false
console.log(JSON.stringify(null));  // null
console.log(JSON.stringify({ name: "hong", age: 100 }));  // {"name":"hong","age":100}
console.log(JSON.stringify([1, 2, 3]));  // [1,2,3]

console.log(JSON.parse('"Hello world!"'));  // Hello world!
console.log(JSON.parse("123"));  // 123
console.log(JSON.parse("false"));  // false
console.log(JSON.parse("null"));  // null
console.log(JSON.parse('{ "name": "hong", "age": 100 }'));  // {name: 'hong', age: 100}
console.log(JSON.parse("[1, 2, 3]"));  // [1, 2, 3]
profile
꾸미기를 좋아하는 웹퍼블리셔 취준생입니다 :)

0개의 댓글