Bliss.js — это легковесная библиотека JavaScript, ориентированная на упрощение работы с DOM, событиями и объектами. Основной особенностью является лаконичный и понятный синтаксис для манипуляций с элементами страницы, а также удобные утилиты для работы с объектами.
Bliss.js предоставляет методы для создания новых объектов и
их копирования. Основной инструмент — метод
Bliss.clone(), который позволяет создавать глубокие или
поверхностные копии объектов.
const original = { a: 1, b: { c: 2 } };
const shallowCopy = Bliss.clone(original, false); // поверхностное копирование
const deepCopy = Bliss.clone(original, true); // глубокое копирование
shallowCopy.b.c = 10;
console.log(original.b.c); // 10, так как поверхностная копия ссылается на вложенный объект
Глубокое копирование создаёт полностью независимый объект, что особенно полезно при работе с конфигурациями или состояниями приложений.
Для слияния объектов используется метод Bliss.extend().
Он принимает два или более объектов и объединяет их свойства в один
новый объект:
const defaults = { theme: "light", debug: false };
const options = { debug: true, layout: "grid" };
const config = Bliss.extend({}, defaults, options);
console.log(config); // { theme: "light", debug: true, layout: "grid" }
Ключевое свойство метода — порядок аргументов. Последующие объекты переопределяют значения предыдущих. Это позволяет легко задавать значения по умолчанию и подставлять пользовательские параметры.
Bliss.js упрощает работу с доступом к свойствам объектов с помощью
метода Bliss.get(). Он безопасно возвращает значение
вложенного свойства и предотвращает ошибки при обращении к
несуществующим ключам:
const user = { profile: { name: "Anna" } };
const name = Bliss.get(user, "profile.name"); // "Anna"
const age = Bliss.get(user, "profile.age", 18); // 18, значение по умолчанию
Метод Bliss.has() позволяет проверять наличие
свойства в объекте:
console.log(Bliss.has(user, "profile.name")); // true
console.log(Bliss.has(user, "profile.email")); // false
Удаление свойств осуществляется через Bliss.delete(). Он
поддерживает удаление вложенных ключей и возвращает булево значение,
указывающее, было ли свойство успешно удалено:
const settings = { appearance: { theme: "dark" } };
Bliss.delete(settings, "appearance.theme"); // true
console.log(settings.appearance.theme); // undefined
Метод полезен при динамическом изменении конфигураций или очистке объектов от временных данных.
Bliss.js предоставляет удобный метод Bliss.each() для
перебора свойств объекта:
const stats = { views: 100, likes: 25 };
Bliss.each(stats, (value, key) => {
console.log(`${key}: ${value}`);
});
Особенности:
Методы Bliss.filter() и Bliss.map()
позволяют выполнять функциональные операции с объектами, аналогичные
работе с массивами.
const data = { a: 1, b: 2, c: 3 };
const filtered = Bliss.filter(data, value => value > 1);
console.log(filtered); // { b: 2, c: 3 }
const mapped = Bliss.map(data, value => value * 10);
console.log(mapped); // { a: 10, b: 20, c: 30 }
Это упрощает работу с объектами при необходимости обработки данных перед рендерингом или сохранением.
Bliss.js предоставляет утилиты Bliss.keys() и
Bliss.values() для получения массивов ключей или
значений объекта:
const product = { name: "Book", price: 500 };
const keys = Bliss.keys(product); // ["name", "price"]
const values = Bliss.values(product); // ["Book", 500]
Эти методы часто используются в сочетании с функциональными операциями для динамического построения интерфейсов.
Bliss.js рассматривает объекты как коллекции, что позволяет применять цепочку методов:
const scores = { math: 90, english: 80, physics: 85 };
const total = Bliss.values(scores)
.filter(score => score >= 85)
.reduce((sum, score) => sum + score, 0);
console.log(total); // 175
Такой подход сокращает количество кода и делает работу с данными более декларативной.
Bliss.js удобно работает с вложенными объектами
благодаря методам get, set,
delete. Установка значения в глубокую структуру
осуществляется с помощью Bliss.set():
const config = {};
Bliss.set(config, "ui.theme.color", "blue");
console.log(config);
// { ui: { theme: { color: "blue" } } }
Метод автоматически создаёт промежуточные объекты, если их нет. Это особенно полезно при работе с динамическими настройками и JSON-структурами.
Bliss.js разработан с акцентом на легковесность и скорость. Методы работы с объектами оптимизированы для минимального использования памяти и избегания лишних копирований данных. Это делает библиотеку удобной для проектов, где важно быстрое выполнение операций с конфигурациями и состоянием.
Основные возможности Bliss.js при работе с объектами включают:
clone),extend),get), установка (set) и
удаление (delete) свойств,has),each, filter,
map),keys,
values).Библиотека превращает объекты JavaScript в гибкие, управляемые коллекции, упрощая манипуляции с данными, особенно в динамических веб-приложениях.