✏️ Collection
구조 혹은 비구조화 형태로 프로그래밍 언어가 제공하는 값을 담을 수 있는 공간
자바스크립트에서 제공하는 Collection
Collection 은 iterator를 가지고 있다.
![](https://velog.velcdn.com/images%2Fwoodstock1993%2Fpost%2F6bb60554-81f3-409f-97cb-6f7406e8bc3d%2Fimage.png)
Map
다양한 자료형의 key를 허용하고, key-value 형태의 자료형을 저장 가능할 수 있는 Collection
Map은 Object 대비 다양한 key의 사용을 허용하고, 값의 추가/삭제 시 메서드를 통해 수행이 필요
let map = new Map();
console.log(map);
map.set("name", "john");
console.log(map);
map.set(123, 456);
console.log(map);
map.set(true, "bool_type");
console.log(map);
console.log(map.get(123), map.get("name"), map.get(true), map.size);
map.delete(123);
console.log(map);
map.clear();
console.log(map);
map.set(123, 789).set(false, "bool_type");
console.log(map);
let recipe_juice = new Map([
["strawberry", 50],
["banana", 100],
["ice", 150]
]);
for (let item of recipe_juice.keys()) {
console.log(item);
}
for (let value of recipe_juice.values()) {
console.log(value);
}
for (let entity of recipe_juice) {
console.log(entity);
}
let recipe_juice_obj = Object.fromEntries(recipe_juice);
console.log(recipe_juice_obj);
let recipe_juice_kv = Object.entries(recipe_juice_obj);
console.log(recipe_juice_kv)
let recipe_juice_map = new Map(recipe_juice_kv)
console.log(recipe_juice_map)
Set
value만 저장하고 중복을 허용하지 않는 Collection
let set = new Set();
let num = new Set([1, 2, 3, 4, 5]);
let str = new Set("Hello");
console.log(set);
console.log(num);
console.log(str);
set.add(1).add(1).add(10).add(20);
console.log(set);
console.log(set.has(10));
console.log(set.has(2));
console.log(set.delete(1));
console.log(set.delete(-1));
console.log(set);
for (let item of str) {
console.log(item);
}
for (let item of str.keys()) {
console.log(item);
}
for (let item of str.values()) {
console.log(item);
}
for (let item of str.entries()) {
console.log(item);
}
Math
표준 Built-in 객체로써 수학적인 연산을 위한 속성값과 메서드를 제공
console.log(Math.max(1, -1));
console.log(Math.min(1, -1));
console.log(Math.max(1, -1, 5, 23, 17, -4));
console.log(Math.min(1, -1, 5, 23, 1, -4));
let nums = [1, -1, 5, 23, 17, -4];
console.log(Math.max.apply(null, nums));
console.log(Math.min.apply(null, nums));
console.log(Math.max(...nums));
console.log(Math.min(...nums));
console.log(Math.abs(1));
console.log(Math.abs(-1));
console.log(Math.abs(-Infinity));
console.log(Math.E);
console.log(Math.PI)
console.log(Number.parseInt(Math.random() * 10));
for(let i = 0; i < 10; i++) {
console.log(Number.parseInt(Math.random() * 10));
}
console.log(Math.pow(2, 3));
console.log(2**3);
console.log(Math.sqrt(4));
console.log(Math.sqrt(2));
console.log(Math.round(1.444444445));
console.log(Math.round(-2.6));
console.log(Math.round(-2.5));
console.log(Math.ceil(3.1)));
console.log(Math.ceil(-2.6));
console.log(Math.ceil(-2.5));
console.log(Math.floor(3.1));
console.log(Math.floor(-2.1));
console.log(Math.floor(-2.5));
Date
표준 Built-in 객체로써 날짜와 시간을 위한 속성값과 메서드를 제공하는 객체
Date 객체는 1970년 1월 1일 UTC(협정 세계시) 자정과의 시간 차이를 밀리초로 나타내는 정수 값으로 표현
![](https://velog.velcdn.com/images%2Fwoodstock1993%2Fpost%2Ff7d852d4-90f2-4505-aa60-a8223d4c6517%2Fimage.png)
let date_now = new Date();
let date = Date();
console.log(typeof (date_now));
console.log(typeof (date));
let date_ms_1 = new Date(0);
console.log(date_ms_1);
let date_ms_2 = new Date(1000 * 3600 * 24);
console.log(date_ms_2);
let date_string = new Date("2021-01-01");
console.log(date_string);
let date_params_1 = new Date(2021, 0, 1);
let date_params_3 = new Date(Date.UTC(2021, 0, 1));
console.log(date_params_1, date_params_3);
![](https://velog.velcdn.com/images%2Fwoodstock1993%2Fpost%2F13537cb8-cdb6-4218-98a3-faa26b52777b%2Fimage.png)