Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
return [function (c, d) {var a;if(a = c[d][0] || c[d][b]) {f[d] = a;e.push(d);}}, function (a) {a = a.replace(/i``/ig, «i`»);return a.replace(/(©z)(?=[ieyj])/ig, "$2");}];
код и его оптимизация и есть тема обсужденияНе совсем. Намного лучше было бы, если бы статья представляла целостное повествование, от идеи до реализации, с элементами кода. В духе «здесь я использовал такое решение JS», «здесь пригодилась такая фишка Unicode» и так далее. Обсуждение строится уже на этом повествовании. В конце можно дать ссылку на репозиторий. Кстати, репозиторий необходим не для выпендрёжа, а для коллаборации: чтобы другие могли воспользоваться тем, что вы достигли, либо прислать вам дополнения.
оставил, код под ECMA 3Это нормально и адекватно в условиях совместимости, и это не противоречит созданию пакета. Пакет нужен не для того, чтобы заточиться под конкретную платформу (ноду, в данном случае), а чтобы формализовать ваши наработки в виде некоторого юнита, у которого будут описаны версия, описание, лицензия, точка входа, что с ним можно сделать, зависимости (если есть). npm, кстати, позиционируется, как пакетный менеджер для всего. И он не прибит гвоздями к ноде, в нём есть поле
engines, которое позволяет указать на каких движках пакет работает или не работает. Пакет можно потом преобразовать для браузера.var toTranslit = function (text) {
return text.replace(/([а-яё])|([\s_-])|([^a-z\d])/gi,
function (all, ch, space, words, i) {
if (space || words) {
return space ? '-' : '';
}
var code = ch.charCodeAt(0),
index = code == 1025 || code == 1105 ? 0 :
code > 1071 ? code - 1071 : code - 1039,
t = ['yo', 'a', 'b', 'v', 'g', 'd', 'e', 'zh',
'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p',
'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh',
'shch', '', 'y', '', 'e', 'yu', 'ya'
];
return t[index];
});
};
проголосовало 17 человек из них 7 нравиться и 10 не нравиться
Код потому и простой
Все остальное есть дело вкуса.
Не пользуюсь, мне в фаре комфортней, но это дело вкуса я не осуждаю.
Оптимизация, не есть минимизация
В этой функции используется максимум 10 ECMA 3 функций, штук 5-6 переменных
new RegExp(e.join("|")
var a; // Создаем временную переменную для хранения символа
e.push(d); // Добавляем в массив RegExp
что вы подразумеваете под «если бы на каждой строке была только одна операция»
return [function (c, d) {var a;if(a = c[d][0] || c[d][b]) {f[d] = a;e.push(d);}}, function (a) {a = a.replace(/i``/ig, «i`»);return a.replace(/(©z)(?=[ieyj])/ig, "$2");}];
var a = /(#[0-9a-f]{6})|(#[0-9a-f]{3})|(rgba?\((\d{1,3})\,\s*(\d{1,3})\,\s*(\d{1,3})(\,\s*([0-9\.]{1,4}))?\))|(rgba?\((\d{1,3})\%?\,\s*(\d{1,3})\%?\,\s*(\d{1,3})\%?(\,\s*([0-9\.]{1,4}))?\))/;
var b = c.match(a);
for(var d = 0; d < e; d++){
z[f][v] = b[d];
}
var distanceRegexp = /(#[0-9a-f]{6})|(#[0-9a-f]{3})|(rgba?\((\d{1,3})\,\s*(\d{1,3})\,\s*(\d{1,3})(\,\s*([0-9\.]{1,4}))?\))|(rgba?\((\d{1,3})\%?\,\s*(\d{1,3})\%?\,\s*(\d{1,3})\%?(\,\s*([0-9\.]{1,4}))?\))/;
var matches = value.match( distanceRegexp );
for(var i = 0; i < count; i++){
result[index0][index1] = matches[i];
}
var $A="Marker'$A'";
var _A="Marker'_A'";
var _$A="Marker'_$A'";
var first = 0;
// ...
var second = 'abc'; // reuse first
alert(second);
var first = 0;
// ...
first = 'abc';
alert(first);
Keyten
Если не секрет, зачем всё сообщение писать в спойлере?
var first = 0; // Предположим, что эта переменная действительно 'first'
// со значением типа Number
// ... // здесь что-то происходит возможно, что с 'first'
first = 'abc'; // Меняем тип переменной, и она уже не может быть 'first' скорее 'tmp'
// Это и есть разрыв логической привязки.
alert(first); // Я бы сразу написал alert('abc');
// Не удачный пример, я бы выбрал, что то об обмене значений переменных, и описал бы классический стек.
//
// В моем понимании оптимизация это разумное соотношение размера кода к количеству
// выполненных операций для получения определенной цели. Я стараюсь не использовать
// переменных, которые использоваться однократно, проще интегрировать эти значения в код.
// После того как понимаешь что все переменные на своих местах, начинаю разбираться, а все
// ли переменные и операции мне нужны - это как упростить уравнение, если упрощать нечего,
// начинаю сортировать переменные в порядке использования, а последним шагом сокращаю имена
// переменных и функций.
//
// Постарался полно ответить на ваши вопросы.
Translit для JavaScript и ГОСТ-7.79-2000