Сегодня я решил оставить заметку с несколькими полезными функциями, которые могу пригодится Вам при написании кода на JavaScript.
Первая функция о которой пойдет речь — парсинг значения в bool тип.
/* @param value - что парсим * @param undefinedReturn - значение если value не определено * @return true или false */ var ParseBoolean = function (value, undefinedReturn) { undefinedReturn = undefinedReturn || false; if (value == undefined) { return undefinedReturn; } else if (value == null) { return false; } else if (typeof (value) == 'string') { return value == 'true'; } else if (typeof (value) == 'number') { return value > 0; } else if (typeof (value) == 'function' || typeof (value) == 'object') { return true; } else { return value } }
Вторая полезная функция парсинг строки в формате год-месяц-день[ час:минута:секунда] в объект date. Почему выбран именно такой формат входной строки? Прост =) На самом деле это один из стандартов, который принимается практически в любом языке программирования.
var ParseDateTime = function (dateString) { var parts = dateString.trim().split(' '); if (parts.length != 2) { if (parts.length == 1) { parts[1] = '00:00:00'; } else { return null; } } var date = parts[0].split('-'), time = parts[1].split(':'); if (date.length != 3 || time.length != 3) { return null; } return new Date(date[0], date[1] - 1, date[2], time[0], time[1], time[2]); }
Еще одна полезная функция — генерация случайного числа из диапазона a, b.
var Random = function (minimum, maximim) { return Math.floor(Math.random() * (maximim - minimum + 1) + minimum); }
Так же бывает полезна функция подсчета логарифма числа n по основанию a.
var Log = function (n, a) { return Math.log(n) / Math.log(a); }
А теперь функция обратная ParseDateTime для перевода объекта date в строку.
var ToLength = function (value, neededLength, prefix, suffix) { prefix = prefix || false; suffix = suffix || false; if (!suffix && !prefix) { return value; } value = value.toString(); while (value.length < neededLength) { if (prefix) { value = prefix + value; } if (suffix) { value += suffix; } } return value; } var DateFormat = function (date, format) { var fullYear = date.getFullYear(), year = ToLength(date.getYear(), 2, "0"), month = ToLength(date.getMonth() + 1, 2, "0"), day = ToLength(date.getDate(), 2, "0"), hour = ToLength(date.getHours(), 2, "0"), minutes = ToLength(date.getMinutes(), 2, "0"), seconds = ToLength(date.getSeconds(), 2, "0"); switch (format) { case 'yyyy-MM-dd': return fullYear + "-" + month + "-" + day; case 'yyyy-MM-dd HH:mm:ss': default: return fullYear + "-" + month + "-" + day + " " + hour + ":" + minutes + ":" + seconds; } }