1. Object.keys()
Возвращает массив ключей объекта
const user = {
id: 1,
username: "john_doe",
email: "john@example.com",
role: "admin"
};
const keys = Object.keys(user);
console.log(keys); // ["id", "username", "email", "role"]2. Object.values()
Возвращает массив значений объекта
const values = Object.values(user); console.log(values); // [1, "john_doe", "john@example.com", "admin"]
3. Object.entries()
Возвращает массив пар [ключ, значение]
const entries = Object.entries(user); console.log(entries); // [["id", 1], ["username", "john_doe"], ["email", "john@example.com"], ["role", "admin"]]
4. Object.assign()
Копирует свойства из одного или нескольких объектов в целевой объект
const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };
const result = Object.assign(target, source);
console.log(result); // { a: 1, b: 4, c: 5 }
// Более безопасный вариант (без мутации исходного объекта)
const newObj = Object.assign({}, target, source);5. Object.freeze()
Замораживает объект, предотвращая добавление, удаление и изменение свойств
const config = {
apiUrl: "https://api.example.com",
timeout: 5000
};
Object.freeze(config);
config.timeout = 10000; // Не сработает в strict mode
config.newProperty = "value"; // Не сработает6. Object.seal()
Запечатывает объект, разрешая изменение существующих свойств, но запрещая добавление и удаление
const settings = { theme: "dark", notifications: true };
Object.seal(settings);
settings.theme = "light"; // Работает
settings.language = "ru"; // Не добавляется
delete settings.notifications; // Не удаляется7. Spread оператор (...)
Современный способ копирования и объединения объектов
// Копирование объекта
const original = { x: 1, y: 2 };
const copy = { ...original };
// Объединение объектов
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const merged = { ...obj1, ...obj2 }; // { a: 1, b: 3, c: 4 }
// Добавление новых свойств при копировании
const updated = { ...original, z: 3, y: 20 }; // { x: 1, y: 20, z: 3 }