Доброго времени суток, коллеги и гости. На днях я решился изучить полезную библиотеку, и хочу поделиться с вами своими впечатлениями…
Как всем нам известно, хлеб программиста - это его знания и опыт работы.
А знания, бесспорно, надо приумножать.Чем я и решил заняться на ближайших выходных.
А изучить я решил такую javascript - библиотеку, как underscorejs.
Почему именно эта библиотека?
В свое время, в далеком 2012-13 годах на своей первой работе я имел дело с underscore,
однако ввиду малой опытности не придал этой библиотеке должного внимания.
Сейчас же, после ухода с предыдущего места работы, я стал много работать с чужим кодом, другими проектами,
где оказываю как програмистские, так и консультативные услуги.
И в большинстве проектов, как я заметил, используются многие библиотеки. В том числе и “черточка”.
Поэтому, решил я восполнить этот пробел в знаниях, и, тем самым повысить свой Level.
Вооружившись ноутбуком, официальной документацией, и несколькими часами свободного времени, стал я изучать…
Немного воды…
Известно, что javascript является тем еще языком в плане работы с коллекциями, обьектами.
Работать то конечно можно, но иногда какие-то легкие операции (будь то обработка массива callback'ом,
либо чистка множества от мусора, либо работа с событиями) превращается в рутину, хочется чего то удобного, понятного и легкого в использовании.
Так вот, Underscore.js - это и есть та самая библиотека, которая создана для того, чтобы сделать жизнь программиста легче.
По сути, она предоставляет более 60 функций, которые нам и помогут. Приведу некоторые примеры из официальной документации, которые мне особенно понравились.
_.noConflict();// Отвяжет переменную "_" от объекта Underscore. Вернёт ссылку на объект Underscore. _.times(3,function(){renderView();});// Вызовет iterator 3 раза_.random(14,100);// любое число в заданном диапазоне_.escape('Curly, Larry & Moe');//Экранирование ! Обратное действие - unescape// "Curly, Larry & Moe"_.now();// вернёт текущую метку времени
Интересные особенности
Интересные особенности
123456789101112131415161718192021
// Следующие две строчки делают абсолютно одинаковые вещи! Круто? хз..._.map([1,2,3],function(n){returnn*2;});_([1,2,3]).map(function(n){returnn*2;});/** Вызвав chain на объекте, * с которым собираетесь работать, вы получите эффект, * при котором каждый последующий метод в цепочке будет вызван на объекте, * возвращённом предыдущим методом. * Чтобы получить результат отработавших методов, нужно вызвать value. */varstooges=[{name:'curly',age:25},{name:'moe',age:21},{name:'larry',age:23}];varyoungest=_.chain(stooges).sortBy(function(stooge){returnstooge.age;}).map(function(stooge){returnstooge.name+' is '+stooge.age;}).first().value();// youngest будет установлена в "moe is 21"_([1,2,3]).value();// вернёт [1, 2, 3]
Что в итоге?
В данной статье я показал лишь некоторые функции, которые, на мой взгляд, показывают достоинства данной библиотеки, как вспомогательной.
Полный список можно найти на официальной странице, вместе с документацией.
P.S., господа!
Надеюсь, что я показал вам этого мощного кроху-помощника, и вы будете его использовать в своих проектах.
Всем спасибо за прочтение, если будут вопросы либо пожелания - рад комментам).
Спишемся.