객체(Object)

기본

const user = {
  name: "Kim",
  age: 29,
  "phone-number": "010-1234-5678",
  greet() { return `Hi, ${this.name}`; },
};

user.name;          // "Kim"
user["age"];        // 29
user["phone-number"]; // 하이픈 키는 대괄호만 가능
user.greet();       // "Hi, Kim"
user.city = "Seoul"; // 동적으로 추가
delete user.age      // 삭제

ES6 객체 리터럴

const name = "Lee", age = 30;
const key = "country";

const person = { name, age };        // 키와 변수명이 같으면 축약
const obj = { [key]: "KR" };         // [key]를 통하여 obj에 key:value 추가

객체의키/값 유틸리티

const user = { name: "Kim", age: 29 };

Object.keys(user);    // ["name","age"]
Object.values(user);  // ["Kim",29]
Object.entries(user); // [["name","Kim"],["age",29]]

for (const [k, v] of Object.entries(user)) {
  console.log(k, v);  // ["name","Kim"],["age",29]
}

옵셔널 체이닝/널 병합

const u = { profile: { contact: null } };

u.profile?.contact?.email; // undefined (중간이 null/undefined면 멈추고 undefined)

const display = u.nickname ?? "Guest"; // null/undefined일 때에만 기본값

동등 비교


배열(Array)

기본

const nums = [1, 2, 3];
nums.length;     // 3
nums[0];         // 1
Array.isArray(nums); // true

불변 vs 가변

불변(원본 유지) 가변(원본 변경)
map, filter, reduce, slice, concat, toSorted, toReversed, toSpliced, with, flat, flatMap, includes, find, findIndex, findLast, findLastIndex, indexOf, lastIndexOf, join, every, some, entries/keys/values push, pop, shift, unshift, splice, sort, reverse, fill, copyWithin