Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
это ничто иное, как шедевр
Write Less Do More:)
решения, которые там используются почти что на 100% настолько оптимальны и продуманы, на сколько это возможно
// First sample
const isEven = n => n % 2 === 0;
const numbers = [4, 8, 15, 16, 23, 42, 108];
numbers.filter(isEven).map(n => n + 5); // [9, 13, 21, 47, 113]
// Second sample
const toLower = s => s.toLowerCase();
const reverse = s => s.split('').reverse().join(''); // TODO: look for Unicode-aware reverse
const strings = ['abcde', 'xyZ', 'HAAR'];
strings.map(toLower).map(reverse); // ["edcba", "zyx", "raah"]
Скажем, зачем jQuery та же в npm, мне не понятно. Для работы с DOM на стороне сервера? Возможно, ок.Вы (как мне показалось) неявно предполагаете, что npm нужен только для того кода, который затем станет работать на стороне сервера.
Я не могу придумать чем jQuery может быть полезен сегодня, если речь не идет о IE и старых версиях каких-нибудь сафари и фаерфоксов.
$('foo', 'bar').reverse()
//vs
['foo', 'bar'].map((word) => {
return word.reverse();
});
jQuery(':active') // выбираем только те слои, которые отмечены, как активные (":" - управляющий символ, говорящий о том, что сейчас нужно будет найти функцию из jQuery.expr), active - ключ в jQuery.expr, по которому находится отбирающая функция
jQuery(1) // Получаем один слой, индекс которого равен единице
jQuery('Layer 1') // Получаем слои, имя которых равняется Layer 1
jQuery(/TextLayer \d+/) // Получаем слои, имя которых соответствует регулярному выражению
jQuery([1, 'Layer 1', 'Layer 2']) // Получаем слои, которые подходят под условия каждого элемента массива.
// и так вплоть до предела нашей фантазии
Это отдельный сервис, никак не связанный с jquery.
хотя на мой взгляд стандартную функциональность лучше просто оборачивать в полифил.
if (typeof Array.prototype.forEach === 'undefined') {
Array.prototype.forEach = function() {...};
}
jQuery Builder — это микрофреймворк, предназначенный для создания jQuery-like библиотек для манипуляции различными данными.
Сейчас плотно изучаю Coffeescript. Планирую переписать Builder на него.
Тем что кофе это кофе а ES2015 это стандарт
где в принципе есть все что и в кофе только больше
Как минимум ради модулей, промисов и кучи других вещей стоит его использовать.
Меня к слову дико напрягает когда какая-то сторонняя библиотека пишется на кофескриптах вместо ES
А так… шанс того что я буду пользоваться библиотекой или контрибьютить в нее резко понижается.
async / await — стандартом при работе с асинхронными функциями, кому-то будет дело до кофе, основанного на ES3 и успешно игнорирующего нововведения в ECMAScript? Сахарный язык в стиле кофе, основанный на ES6+, нужен, но это будет уже не кофе. В своё время казалось, что приемником кофе станет LiveScript, но и он прекратил активное развитие.основанного на ES3 и успешно игнорирующего нововведения в ECMAScript
Когда придет время, все будет реализовано.
Сейчас плотно изучаю Coffeescript. Планирую переписать Builder на него.
Не надо. Лучше посмотрите в сторону ES2015 babeljs.io.
Т.е. вы предсказываете будущее.
На мой вопрос «И чем же CoffeeScript хуже ES2015 babeljs.io?» — я никаких внятных аргументов не получил!
на coffee почти забили
...foo вместо foo... или, скажем, => вместо -> и т. п..forEach() работает на 1500% медленнее, чем for (var i, i >= foo.length, i++). Но я не робот, чтобы писать эти for loops и каждый день спотыкаться об ошибку на единицу.filter и map, а чтобы не развертывать алгоритмы выборки и обхода каждый раз, используется каррирование. var composition = app.project.activeItem;
var filtered = composition.layers.filter(function (layer) {
return layer.active;
});
var filtered = $(':active');
var isEven = function(item) { return item % 2 === 0; };
var getEven = function(item) { if (isEven(item)) return item; };
var getOdd = function(item) { if (!isEven(item)) return item; };
var addNumber = function(number) {
return function (item) { return item + number; };
};
console.log(
[2, 3, 4, 5, 6, 7]
.filter ( getOdd )
.map ( addNumber(2) )
); // => [5, 7, 9]
Even more jQuery?