Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
var r = new XMLHttpRequest();
r.open("GET", "http://habrahabr.ru/", true);
r.onreadystatechange = function () {
if (r.readyState != 4 || r.status != 200) return;
// Профит?
};
r.send();Неглупый, в общем, программист Петя на третьем разе замахается писать одно и то же и напишет обертку для XHR. Естественно, тестировать в старых и экзотических браузерах он не будет, да и зачем?var s = document.getElementById('thing').style;
s.opacity = 1;
(function fade(){(s.opacity-=.1)<0?s.display="none":setTimeout(fade,40)})();Хороший парень Вася на третьем разе замахается писать одно и то же и напишет обертку для эффектов. Естественно, тестировать в старых и экзотических браузерах он не будет, да и зачем?var $ = document.querySelectorAll.bind(document)
// для браузеров, поддерживающих bind или самостоятельно написанный bind(пара строк кода)Примерный семьянин Коля на третьем разе замахается писать одно и то же и напишет обертку для селекторов. Естественно, тестировать в старых и экзотических браузерах он не будет, да и зачем?За это его ругать не стоит, вещь не из самых простых для начинающих.
Так что же теперь думает Ваня о своих чудесных предшественниках? и считает ли он их программистами?Если плагины хорошие, грамотно написаны и поддерживаются, то всё неплохо, как минимум. Гораздо хуже было бы, если
drag & drop, слайдеры, скролеры, карусели, зумеры, табы, дейтпикеры, маски…представляли из себя велосипеды не самого лучшего качества, которые никто кроме самих авторов поддерживать не может (и уже не будет). Есть, конечно, вариант, что эти самописные компоненты будут грамотно написаны, оттестированы и заопенсорсены (+ появятся контрибьюторы, соответственно и поддержка). 1) Вопрос: сколько на это потребуется времени? (а время — деньги) 2) Вероятность такого поворота, в контексте вашей версии истории, близится к 0 (пока не придёт Ваня :).
на профессиональном уровне освоил javascript на предыдущей работе, разбирается во многих его особенностях, отлично знает концепции многих фреймворков, из-за чего начал искоса поглядывать на jqueryНикто из коллег фронтендеров не смотрит искоса на jQuery (бывают, конечно, споры / ворчание, но всё же...). Наоборот, все прекрасно понимают его вклад в развитие и аргументы, изложенные выше. Главное понимать, где его использование будет уместно, а где нет.
Если веб-приложение тормозит, jQuery стоит в конце списка, где может быть проблема.
забывая, что речь о jQuery 2.0.Версия мало имеет значения, главное — экосистема, стабильность, преемственность API и далее по списку в моём предыдущем комменте (уже 3-й раз повторил :)
естественно, но вот код, который написан на нем, как правило, «хорошими знатоками» js… мягка говоря, качественным не назовешь.&
Доводилось видеть… допускает ошибки в jsДа всем, на всех языках программирования, доводилось видеть всякое. Это же не повод экстраполировать.
нельзя просто взять и заменить на натив код.
var $ = document.querySelectorAll.bind(document) и подобные замены, не всегда можно использовать как есть.var $ = document.querySelectorAll.bind(document) — сильно ограничен в возможностях, т.к. выборка будет всегда с корня; есть ещё такой вариант:var $ = Function.prototype.call.bind(HTMLElement.prototype.querySelectorAll);
// use:
var somediv = $(document.body, 'div')[10];
var spans = $(somediv, 'span');
className состоит из нескольких классов? Не проблема, разобьем строку по пробелам или регуляркой чекнем в конце концов.
var b = $('<button>Click</button>');
b.appendTo('body');
b.live('click', function() {
alert('Click');
});
on(selector, listenerFn). Собственно все тот же live().
Vanilla JS vs jQuery 2.0