Преобразование типов

Bliss.js — это легковесная библиотека для работы с DOM и функциональными утилитами в JavaScript, которая предоставляет удобные методы для обработки данных, элементов и событий. Одной из фундаментальных возможностей является работа с преобразованием типов данных, что особенно важно при манипуляции DOM, взаимодействии с формами и обработке пользовательского ввода.

Преобразование строк в числа и обратно

Bliss.js предлагает удобные методы для безопасного преобразования строк в числа и чисел в строки. Основной подход заключается в использовании функций B.parseInt(), B.parseFloat() и встроенного метода .toString().

let strNumber = "42";
let intNumber = B.parseInt(strNumber); // 42
let floatNumber = B.parseFloat("3.14"); // 3.14

let num = 100;
let str = num.toString(); // "100"

Особенности:

  • B.parseInt() и B.parseFloat() игнорируют ведущие и завершающие пробелы.
  • Если строка не может быть корректно преобразована, возвращается NaN.
  • Преобразование через .toString() всегда возвращает строку даже для значений null и undefined.

Булевы значения и их конвертация

Bliss.js содержит методы для явного и безопасного приведения значений к логическому типу. Используется B.toBool():

let truthy = B.toBool(1); // true
let falsy = B.toBool(0); // false
let fromString = B.toBool("true"); // true
let fromEmptyString = B.toBool(""); // false

Ключевые моменты:

  • Любое ненулевое число считается true.
  • Пустые строки, 0, null, undefined и false конвертируются в false.
  • Строки "true" и "false" корректно интерпретируются как логические значения.

Преобразование объектов и массивов

Bliss.js упрощает сериализацию и десериализацию данных через методы B.toJSON() и B.fromJSON():

let obj = { name: "Alice", age: 30 };
let jsonString = B.toJSON(obj); // '{"name":"Alice","age":30}'

let parsedObj = B.fromJSON(jsonString); // { name: "Alice", age: 30 }

Особенности:

  • B.toJSON() обрабатывает вложенные объекты и массивы.
  • Ошибки при парсинге JSON обрабатываются через try/catch блок, что предотвращает аварийное завершение скрипта.

Для массивов также существует функция B.arrayify(), которая гарантирует, что любое значение будет приведено к массиву:

let single = 5;
let arr = B.arrayify(single); // [5]

let alreadyArray = [1, 2, 3];
let sameArray = B.arrayify(alreadyArray); // [1, 2, 3]

Работа с датами

Bliss.js предоставляет методы для преобразования строк и чисел в объекты Date:

let dateFromString = B.toDate("2026-01-14"); // Thu Jan 14 2026
let dateFromTimestamp = B.toDate(1673683200000); // Thu Jan 14 2026

Важные моменты:

  • Строки должны быть в формате ISO или поддерживаемом браузером формате даты.
  • Некорректные значения возвращают Invalid Date.
  • B.toDate() позволяет унифицировать обработку различных форматов ввода.

Универсальное приведение типов

Для сценариев, где требуется динамическое определение типа, Bliss.js использует метод B.cast(value, type):

let str = "123";
let num = B.cast(str, "number"); // 123

let booleanStr = "false";
let bool = B.cast(booleanStr, "boolean"); // false

let objStr = '{"key":"value"}';
let obj = B.cast(objStr, "object"); // { key: "value" }

Особенности:

  • Типы, поддерживаемые методом: "string", "number", "boolean", "object", "array", "date".
  • Позволяет создавать универсальные функции, работающие с любыми типами данных.
  • Обрабатывает ошибки преобразования без прерывания выполнения.

Примеры практического применения

  1. Формы и пользовательский ввод: Все значения из input и textarea возвращаются как строки. Преобразование через B.cast упрощает работу с числами и логикой:
let ageInput = document.querySelector("#age").value;
let age = B.cast(ageInput, "number");
  1. Обработка API: JSON-ответы часто содержат числовые значения в виде строк. B.cast позволяет автоматически преобразовать их:
let data = '{"price":"199.99","available":"true"}';
let parsed = B.fromJSON(data);
parsed.price = B.cast(parsed.price, "number");
parsed.available = B.cast(parsed.available, "boolean");
  1. Унификация данных: При объединении данных из разных источников можно привести все значения к единому типу для дальнейшей обработки.

Итоги возможностей преобразования типов в Bliss.js

  • Преобразование между числами, строками и булевыми значениями.
  • Сериализация и десериализация объектов и массивов.
  • Работа с датами и временными метками.
  • Универсальный метод B.cast для динамического приведения типов.
  • Безопасная обработка некорректных данных с минимальным риском ошибок.

Bliss.js обеспечивает единообразный и предсказуемый способ работы с типами, что делает код более надежным и легко поддерживаемым, особенно при взаимодействии с внешними данными и динамическими источниками.