Думаю, что лучше взять ES6 + Babel + Webpack. Может я ошибаюсь и лучше взять что-то другое?Нормально.
Использовать сервер только для получения каких-либо данных, а бизнес-логику поручить клиентсайду? SPA или классический сайт?Так вы задайте себе вопрос, у вас SPA или классический сайт? Приложение или газета? Gmail нет смысла делать классическим сайтом, визитку нет смысла делать SPA.
error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator.
[Symbol.iterator](): IterableIterator<Node> {
return this.nodeAll[Symbol.iterator]();
}
if (message.type === 'error')
, то, конечно, ===
. this.listenTo(this.model, 'change', this.render);
Я понимаю, что jQuery был необходим тогда когда например не было в js document.queryselector("")Ну а миллиона статей с названием «you might not need jquery» вы не заметили?:)
Неужели jQuery ограничивается DOM и AJAX?Ну да. Когда-то этого хватало. Плюс, не забывайте, сейчас все еще можно столкнуться с поддержкой IE8 или еще какого бронтозавра, а там и querySelectorAll хиленький и AJAX через одно место делается.
Актуально ли сейчас изучения (сложно назвать это изучение, скорее чтение документации) jQuery?Действительно, чего там учить-то? Заучивать смысла нет, а общий принцип вы уже ухватили. Но имейте ввиду, столкнуться с ней вам придется не раз: мегатонны легаси-кода и сотни плагинов это вам не кот начхал. Так что осведомленным быть придется.
$(document).on('click', function (event) {
if (isModalOpen) { // если модальное окно открыто, то делаем проверку
// если modalWindow.find() не найдет элемент, значит, он находится вне модального окна
// значит, клик был «снаружи», прячем окошко
if (modalWindow.find(event.target).length === 0) {
modalWindow.hide();
}
};
})
$.when(d1,d2,d3).then( done, fail);
d1 = $.Deffered();
d1.resolve(mydata);
Promise.all([d1,d2,d3]).then( done, fail);
// если нужен сразу зарезолвенный промис
Promise.resolve(mydata)
// если нужно создать и зарезолвить когда-то потом, то сложнее
var resolver;
new Promise((resolve, reject) => {
resolver = resolve;
});
// ...
resolver(mydata);