Date 객체 생성현재 날짜와 시간으로 생성인수를 제공하지 않고 new Date() 를 호출하면 현재 시각을 나타내는 Date 객체가 생성됩니다.const now = new Date();console.log(now.toString());타임스탬프(밀리초)를 사용하여 생성1970년 1월 1일 00:00:00 UTC를 기준으로 한 밀리초 값을 인수로 넘기면, 해당 시점을 나타내는 Date 객체가 만들어집니다.const epoch = new Date(0);console.log(epoch.toUTCString());// 출력: "Thu, 01 Jan 1970 00:00:00 GMT"// 24시간(1일) 후의 시간const oneDayLater = new Date(24 * 60 * 60 * 1000);consol..
구조 분해 할당이란구조 분해 할당은 객체나 배열 등의 복합 자료형에서 특정 값을 추출하여 직접 할당하는 방식을 제공합니다. 이를 통해 불필요한 중간 단계를 줄이고, 코드를 더욱 간결하고 명확하게 작성할 수 있습니다.배열의 구조 분해기본 배열 분해배열의 각 요소를 순서대로 변수에 할당할 수 있습니다.const fullName = ["홍길동", "김"]; // 성과 이름으로 구성된 배열const [lastName, firstName] = fullName;console.log(lastName); // 출력: "홍길동"console.log(firstName); // 출력: "김"이처럼 배열의 순서에 따라 변수를 선언하고 값을 할당할 수 있습니다.split() 메서드와 결합하여 문자열을 손쉽게 분해할 수 있습니..
일반 객체의 순회Map, Set, Array는 고유한 반복 메서드를 제공하여 반복문을 순회하였습니다. 그러나 일반 객체는 별도의 반복 메서드가 없으므로, 정적 메서드를 통해 객체의 프로퍼티를 배열로 추출하여 활용합니다.Object.keys(obj)객체의 문자열 키만을 담은 배열을 반환합니다.Object.values(obj)객체의 값만을 담은 배열을 반환합니다.Object.entries(obj)객체의 [키, 값] 쌍을 요소로 갖는 배열을 반환합니다.const user = { name: "Alice", age: 28, country: "Korea"};console.log(Object.keys(user)); // 출력: ["name", "age", "country"]console.log(Object..
WeakMap일반 Map과 유사하게 키-값 쌍을 저장하지만, 다음과 같은 특징이 있습니다.키 제약WeakMap의 키는 반드시 객체여야 하며, 원시값은 사용할 수 없습니다.가비지 컬렉션과 연동WeakMap에 저장된 키가 다른 곳에서 참조되지 않아 도달할 수 없는 경우, 해당 키-값 쌍은 자동으로 메모리에서 제거됩니다.비반복성WeakMap은 내부의 모든 요소에 대한 반복을 지원하지 않습니다. 가비지 컬렉션 시점 예측 불가능하기 때문입니다.WeakMap을 활용한 캐싱// 비용이 많이 드는 연산의 결과를 캐싱하는 모듈const expensiveCache = new WeakMap();function computeExpensiveResult(obj) { if (!expensiveCache.has(obj)) { ..
Map객체와 유사하게 키-값 쌍을 저장하지만 키의 타입 제약이 없고 삽입 순서를 보장합니다.생성const phoneBook = new Map();초기화const initialData = [ ['Alice', '010-1111-2222'], ['Bob', '010-2222-3333'], ['Charlie', "010-3333-4444"]];const map = new Map(initialData)요소 추가set 메서드는 Map 자신을 반환하므로 체이닝이 가능합니다.phoneBook .set("Alice", "010-1111-2222") .set("Bob", "010-2222-3333") .set({ name: "Charlie" }, "010-3333-4444");요소 접근console.log(p..
이터러블 객체란순차적인 데이터 접근을 위한 핵심 인터페이스를 제공하며, 반복 가능한 데이터 컬렉션을 일반화 한 것으로, for...of 반복문과 같은 반복 작업에 사용될 수 있는 객체입니다. 이터러블 객체는 Symbol.iterator 메서드를 반드시 구현해야 하며, 다음 값은 next() 메서드를 가지고 있어야 제공됩니다.이터러블의 핵심Symbol.iteratorSymbol.iterator 메서드는 이터러블의 핵심입니다. 이 메서드는 이터러블 객체가 반복 가능한 방식으로 동작할 수 있게 해줍니다. 자바스크립트 엔진은 이 메서드를 호출하여 이터레이터 객체를 반환하며, 이터레이터의 next() 메서드를 호출하여 반복을 진행합니다.next() 메서드각 반복 단계에서 호출되며 아래와 같은 형태의 객체를 반환합..