Комментарии 51
Не могли бы вы привести пример использования этой библиотеке и объяснить, что же в ней такое есть, чего вам так не хватало при работе с jQuery.
-30
JQuery ориентивана на возню с HTML, Underscore же, очевидно из заголовков, ориентирована на упрощение работы с массивами, объектами, функциями, и так далее.
Документацию и примеры можно найти по ссылке.
Anonym, вы, наверно, без глаз.
Документацию и примеры можно найти по ссылке.
Anonym, вы, наверно, без глаз.
+21
Да вроде с глазами, просто я, прочитав топик, подумал, что отлично обхожусь без всего этого, вот и решил поинтересоваться.
-12
Некоторые и без jQuery «отлично обходятся™».
А некоторые даже без Javascript! :)
А некоторые даже без Javascript! :)
+17
™ — wapedia.mobi/ru/%D0%A2%D0%9C
Зачем вы поставили этот символ?
Зачем вы поставили этот символ?
+5
Некоторые и без компьютера отлично обходятся и вообще искренне не понимают красноглазых товарищей ;-)
+1
Эта библиотека нужна для того, чтобы повысить удобство при обработке данных в javascript. В том же jQuery реализована от силы пара функций из приведенных выше. И, по заверениям авторов, их версия работает быстрее.
+2
простой пример
ширина блоков
jquery
или
+ Underscore.js
ширина блоков
jquery
Array.prototype.sum = function(){
for(var i=0,sum=0;i<this.length;sum+=this[i++]);
return sum;
}
$.makeArray($('.selector').map(function() { return $(this).width() })).sum()
или
var sum = 0;
$('.selector').each(function() { sum += $(this).width() });
+ Underscore.js
_.reduce($('.selector'), 0, function(m, el){ return m + el.width() });
+2
Шел jQuery через jQuery
Видит jQuery в jQuery jQuery
Сунул jQuery руку в jQuery
jQuery, jQuery, jQuery, jQuery
Видит jQuery в jQuery jQuery
Сунул jQuery руку в jQuery
jQuery, jQuery, jQuery, jQuery
-2
НЛО прилетело и опубликовало эту надпись здесь
как раз недавно надо было манипулировать с массивами так же как в примере! автору статьи респект! будем юзать.
-1
Эх, засунуть бы все это в jQuery…
-2
Хм, для чего это там? Это отдельный инструмент, ничего не мешает в случае необходимости использовать совместно.
+3
Отличная библиотека. Узнал о ней около года назад, с тех пор пользуюсь. Javascript made easy! )
+1
Спасибо за статью. Прощайте, велосипеды!
0
just cool
0
там допущена та же ошибка, что и в прототайпе: habrahabr.ru/blogs/javascript/86852/
+1
То, что вы назвали «ошибкой», является на самом деле небольшим неудобством. Если вы не разрабатываете эту библиотеку (или тестируете), такое преобразование, которое еще и модифицирует интерфейс функции, ненужно.
И у объекта Exception есть свойство stack.
И у объекта Exception есть свойство stack.
0
да, подумаешь, не узнать координаты ошибки… мелочи же х) настоящие джедаи видят потоки силы пересекающиеся в проблемных местах!
0
Если вы руками выкидываете эксепшн и интересуетесь стэком вызовов, вам нужно руками его ловить и руками выводить.
try {
throw new Error('hehe');
} catch (e) {
console.debug(e);
}
Возможно, при разработке или написании тестов, они пользуются чем-то подобным. В конечном продукте это лишнее и уж ошибкой точно не является.
Честно говоря, не помню, когда уже в последний раз видел стэк в JS… Год назад, когда на Dojo что-то делал, вроде видел нет-нет, а потом даж внимания не обращал =)
try {
throw new Error('hehe');
} catch (e) {
console.debug(e);
}
Возможно, при разработке или написании тестов, они пользуются чем-то подобным. В конечном продукте это лишнее и уж ошибкой точно не является.
Честно говоря, не помню, когда уже в последний раз видел стэк в JS… Год назад, когда на Dojo что-то делал, вроде видел нет-нет, а потом даж внимания не обращал =)
0
а то я не знаю… habrahabr.ru/blogs/javascript/87098/
0
В проектах, построенных на node.js, underscore.js может быть очень кстати, т.к. он даёт всё то, что есть в prototype.js и не завязывается на DOM
Ваш К.О.
Ваш К.О.
+4
Есть библиотека покруче: osteele.com/sources/javascript/functional/
+3
НЛО прилетело и опубликовало эту надпись здесь
Да, библиотека крута. Но это какой-то, извиняюсь, функциональный ад.
А по теме поста.
Наконец-то свершилось — нормальный, православный .max(), возвращающий значение массива, а не максимальное значение. Ну очень не хватало!
Очень удобная библиотека для написания встраиваемых скриптов. И без разницы в какое окружение оно встраивается, в Mootools, в Prototype или в JQuery.
А по теме поста.
Наконец-то свершилось — нормальный, православный .max(), возвращающий значение массива, а не максимальное значение. Ну очень не хватало!
Очень удобная библиотека для написания встраиваемых скриптов. И без разницы в какое окружение оно встраивается, в Mootools, в Prototype или в JQuery.
+1
«вне закона» — это юмор?
-1
Всегда было проще написать быстренько свой метод, чем искать и тащить где-то такую библиотеку. Тем более, ничего принципиально сложного в ней нет.
Хотя кому-то несомненно будет полезна.
Кстати, многие функции для работы с массивами отсюда есть и в MooTools
Хотя кому-то несомненно будет полезна.
Кстати, многие функции для работы с массивами отсюда есть и в MooTools
0
Как и в Prototype, если есть берётся forEach, если нет, используется неправильный аналог.
В разных браузерах будет разный результат.
var a = ['a', 'b']; a[5] = 'c'; var str = ''; _.each(a, function(item) { str += item; }); alert(str);
В разных браузерах будет разный результат.
+1
В итоге.
each работает по разному в разных браузерах.
map и filter используют each, поэтому тоже работают по разному, но даже если исправить each, map будет работать неправильно.
indexOf, lastIndexOf тоже работают неправильно.
each работает по разному в разных браузерах.
var values = ''; _.each([1,,2], function(value) { values += value; }); alert(values); // 1undefined2 в IE, 12 в остальных браузерах
map и filter используют each, поэтому тоже работают по разному, но даже если исправить each, map будет работать неправильно.
indexOf, lastIndexOf тоже работают неправильно.
alert(_.indexOf([1,,undefined], undefined));Выведет 1 в IE, 2 в остальных браузерах. Хотя в IE в данном конкретном случае должен вывести -1, но это из другой оперы.
+5
Дополнительные функции — это хорошо. А классы в JS — плохо. (да, я не про этот фреймворк, а вообще)
JS тем и прекрасен, что он class-less.
JS тем и прекрасен, что он class-less.
+1
Наверное это просто непрофессиональный взгляд на javascript, но я не люблю библиотеки в принципе. Мне кажется, что при постоянном использовании вещей типа jQuery теряешь возможность практиковаться на мелочах. В итоге потом и появляются такие вот полу-шуточные комментарии как на скрине stackoverflow выше.
-2
А почему она «вне закона»? Я лично из статьи не уловил.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Underscore.js — библиотека, которая так хороша, что должна быть вне закона