Проверка типов данных

Библиотека Cash в JavaScript является облегчённой альтернативой jQuery, предоставляющей удобные методы для работы с DOM, событиями, анимациями и вспомогательными утилитами. Среди этих утилит есть функции для проверки типов данных, которые помогают писать безопасный и предсказуемый код.

Проверка базовых типов данных

Cash предоставляет простые методы для проверки строк, чисел, булевых значений, массивов и объектов. Основные функции:

$.isString(value)   // Проверка на строку
$.isNumber(value)   // Проверка на число
$.isBoolean(value)  // Проверка на булево значение
$.isArray(value)    // Проверка на массив
$.isPlainObject(value) // Проверка на простой объект ({}), исключая классы и функции

Примеры:

$.isString("Hello");      // true
$.isNumber(42);           // true
$.isBoolean(false);       // true
$.isArray([1, 2, 3]);     // true
$.isPlainObject({a: 1});  // true
$.isPlainObject(new Date()); // false

Ключевой момент: $.isPlainObject проверяет только объекты, созданные литералом {} или через Object.create(null). Экземпляры классов и встроенные объекты не считаются «простыми».

Проверка функций и элементов DOM

Для работы с функциональными или DOM-сущностями библиотека предоставляет:

$.isFunction(value)  // Проверка на функцию
$.isNode(value)      // Проверка на DOM-узел

Примеры:

$.isFunction(function() {});  // true
$.isNode(document.body);      // true
$.isNode({});                 // false

Проверка пустых значений

Определение пустых значений важно для обработки пользовательского ввода и данных из API. Cash использует метод $.isEmpty:

$.isEmpty(value);

Метод возвращает true для:

  • null
  • undefined
  • Пустой строки ""
  • Пустого массива []
  • Пустого объекта {}

Примеры:

$.isEmpty("");          // true
$.isEmpty([]);          // true
$.isEmpty({});          // true
$.isEmpty("text");      // false
$.isEmpty([1,2,3]);     // false

Особенность: $.isEmpty учитывает как структурные пустые значения, так и примитивные.

Проверка числовых и строковых форматов

Для сложной валидации Cash предлагает дополнительные утилиты:

$.isNumeric(value)      // Проверка на число (включая строки с числами)
$.isInteger(value)      // Проверка на целое число
$.isFloat(value)        // Проверка на число с плавающей точкой

Примеры:

$.isNumeric("123");     // true
$.isNumeric("12a3");    // false
$.isInteger(10);        // true
$.isFloat(10.5);        // true

Важно: $.isNumeric возвращает true для строк, которые могут быть безопасно преобразованы в число.

Работа с массивами и объектами

Для глубокого анализа массивов и объектов применяются методы проверки элементов:

$.isArrayOfType(array, typeCheckFunction)

Пример использования:

$.isArrayOfType([1, 2, 3], $.isNumber);   // true
$.isArrayOfType([1, "2", 3], $.isNumber); // false

Это полезно при проверке структурированных данных, например JSON-ответов API.

Составные проверки

Методы Cash можно комбинировать для создания более сложной логики проверки:

if ($.isArray(data) && !$.isEmpty(data) && $.isArrayOfType(data, $.isPlainObject)) {
    // Обработка массива объектов
}

Принцип: использование функций Cash для проверки типов позволяет избегать ошибок TypeError при манипуляции данными.

Поддержка пользовательских проверок

Cash поддерживает написание собственных функций для проверки:

function isPositiveNumber(value) {
    return $.isNumber(value) && value > 0;
}

isPositiveNumber(5);   // true
isPositiveNumber(-3);  // false

Это расширяет возможности библиотеки и делает код более выразительным и безопасным.

Практические рекомендации

  • Всегда проверять входные данные, особенно если они получены из внешних источников.
  • Использовать $.isPlainObject вместо typeof obj === 'object', чтобы исключить классы и массивы.
  • Комбинировать проверки, чтобы гарантировать корректность структуры данных.
  • Создавать пользовательские валидаторы, если стандартные методы не покрывают специфические требования.

Использование проверок типов Cash повышает надёжность кода, облегчает отладку и предотвращает ошибки при работе с динамическими данными JavaScript.