Pull to refresh
-8
0

(Only reading => Paused => Welcome)

Send message
Спасибо.
Не видел.
Примерно тоже, но без учета правил и стандарта, я когда то так от нечего делать, писал для Брайля и морзянки.


Использую что то подобное
/*******************************************************************************
* @Name   : "date_format($dt,$ds)"                   // Имя
* #Guid   : {59BA575F-E2FD-40B3-B6D3-CDDED99E635C}   // GUID
* @Create : 25.12.2006/12:26:11                      // Дата создания
* @Exampl : "alert(date_format(new Date(),'yyMMdd_HHmmss_FFF'));" // Пример использования
* @Params :    $dt - Объект Date                     // Параметры запуска
*              $ds - Форматная строка(шаблон возвращаемого значения)
*                  'yyyy'- // Год,[0000-9999]
*                    'yy'- // Год,[00-99]
*                    'MM'- // Месяц,[01-12]
*                     'M'- // Месяц,[1-12]
*                    'dd'- // День месяца,[01-31]
*                     'd'- // День месяца,[1-31]
*                    'HH'- // Час в 24-часо.,[00-23]
*                     'H'- // Час в 24-часо.,[0-23]
*                    'mm'- // Минуты,[00-59]
*                     'm'- // Минуты,[0-59]
*                    'ss'- // Секунды,[00-59]
*                     's'- // Секунды,[0-59]
*                   'FFF'- // Тысячные доли секунды,
*                    'FF'- // Сотые доли секунды.
*                     'F'- // Десятые доли секунды.
*                   'ZZZ'- // Смещение времени в минутах
*                    'ZZ'- // Смещение времени в часах
*
* @Descrp : Функция преобразования даты и времени в строку по требуемому формату // Описание
* @Return : Строку даты и времени в требуемом формате// Возвращаемое значение
* @Depend : _pad(a, b, d, e) для добавления нулей    // Использует (Зависимости)
* GPL applies. No warranties XGuest[25.12.2006/12:26:11] [ver.1.0.0.0]
*******************************************************************************/
function date_format(a, b) {
 var c = new function(a) {
  var b     = Date.prototype, c = require('String')._pad;
  this.yyyy = b.getFullYear.call(a);
  this.yy   = ("" + this.yyyy).substr(2, 2);
  this.M    = b.getMonth.call(a) + 1;
  this.MM   = c(this.M, 2);
  this.dd   = b.getDate.call(a);
  this.d    = c(this.dd, 2);
  this.H    = b.getHours.call(a);
  this.HH   = c(this.H, 2);
  this.m    = b.getMinutes.call(a);
  this.mm   = c(this.m, 2);
  this.s    = b.getSeconds.call(a);
  this.ss   = c(this.s, 2);
  this.FFF  = c(b.getMilliseconds.call(a), 3, 1);
  this.FF   = this.FFF.substr(0, 2);
  this.F    = this.FFF.substr(0, 1);
  this.ZZZ  = c(b.getTimezoneOffset.call(a),    4);
  this.ZZ   = c(b.getTimezoneOffset.call(a)/60, 3);
 }(a);
 return b.replace(/(yyyy|yy|MM|M|dd|d|HH|H|mm|m|ss|s|FFF|FF|F|ZZZ|ZZ)/g, function(a) {return c[a];});
}

Спасибо за ваше внимание.
На 20 февраля 2015 23:24 проголосовало 17 человек из них 7 нравиться и 10 не нравиться, в избранное добавили 17.
Насчет замечаний, все конечно в тему, и постараюсь исправить но:
Не хватает комментариев — я не претендовал на обучающий материал — допишу.
Оптимизация, не есть минимизация.
Все остальное есть дело вкуса.
k12th
1) Код потому и простой, что оптимизирован руками. Дуглас Крокфорд и Closure ни причем. Имя Дугласа Крокфорда — упомянул как автора первого минимизатора, с которым столкнулся: github.com/douglascrockford/JSMin.git.
2) JSDoc наверное интересная вещь, но я не переписывал шаблоны так как не хватало описания стандарта. А насчет страницы с документацией, у меня все мои наработки лежат в отдельном MDB и мне все равно, что из него делать: .js; .html или что-то еще. «JSDoc… в некоторых IDE» — Не пользуюсь, мне в фаре комфортней, но это дело вкуса я не осуждаю. Тоже самое насчет привычек.
3) Оптимизация, не есть минимизация.
В этой функции используется максимум 10 ECMA 3 функций, штук 5-6 переменных, не использует сторонних инструкций и функций тем более из NodeJS, а как быть Googl и mozilla SDK. И ещё, что вы подразумеваете под «если бы на каждой строке была только одна операция»
В этой функции используется максимум 10 ECMA функций, штук 5-6 переменных, синтаксис соответствует ECMA 3 и не использует NodeJS, а как быть Googl и mozilla SDK,. И ещё,
что вы подразумеваете под «если бы на каждой строке была только одна операция»

Например тот фрагмент кода который вы привели:
return [ // Возвращаем массив функций
function (c, d) { // c — таблица, d — символ (создаем таблицу и RegExp)
var a; // Создаем временную переменную для хранения символа
if(a = c[d][0] || c[d][b]) { // Если символ есть
f[d] = a; // Добавляем символ в объект преобразования
e.push(d); // Добавляем в массив RegExp
}
}, function (a) { // a — строка (функция пост-обработки)
a = a.replace(/i``/ig, «i`»); // для старославянского и болгарского
return a.replace(/(©z)(?=[ieyj])/ig, "$2"); // правило использования символа «c»
}];
кстати оптимизатор переписал бы последнюю функцию как минимум так,
return a.replace(/i``/ig, «i`»).replace(/(©z)(?=[ieyj])/ig, "$2");
а я пропустил.
Вы предполагали эти комментарии?

P.S. Если есть ссылка на описание стандарта JsDoc, бросьте в меня пожалуйста.

И Вам, доброго времени.
Спасибо за ваше мнение.
Постараюсь ответить по порядку.
1) Логику стараюсь упростить до минимума, только чтобы не перегружать код, и если что-то останется для минимизатора, пусть Crockford или Closure трудятся.
2) Мой шаблон для Far Manager гораздо старше JsDoc, а переписывать лень, так и оставил, не знаю, до этого всем все было понятно, или я ошибаюсь?
3) Насчет читабельности, описание логики алгоритма, храню отдельно, опять-таки, чтобы не перегружать код. Но там нет ничего, что стоило бы внимания, хотя здесь вы наверное правы, у меня привычки астматика (еще с masm 2).
В зависимости от значения параметров.
Собираю таблицу преобразования символов, по ней RegExp, ну и функцию обработки.
Позже прокомментирую код, обещаю;)

Information

Rating
Does not participate
Registered
Activity

Specialization

Системный администратор