function truncInteger(number, precision) {
return number - (number % precision);
}
console.log(truncInteger(1000040, 100));
console.log(truncInteger(1200040, 100));
function roundInteger(number, precision) {
return Math.round(number / precision) * precision;
}
console.log(roundInteger(1000040, 100));
console.log(roundInteger(1200040, 100));
console.log(roundInteger(1000080, 100));
console.log(roundInteger(1200080, 100));
Можете, пожалуйста, объяснить, что выполняет эта часть кода: (Membership || (Membership = {})Если в Membership не falsy значение (например объект), то передать ссылку на него в функцию, иначе (если в Membership undefined) присвоить в Membership новый объект и передать ссылку на него в функцию
И почему это всё обёрнуто в функцию?Сложно сказать, думаю кто-то скопировал код отсюда в код сюда и не стал париться, так как в обоих случаях есть declaration merging, о котором уже написал Aetae
но зачем скомпилированную версию называть отдельным именем и выделять под нее отдельный репозиторийdist репозиторий может автоматически разворачиваться на CDN через CI или push-хук, при этом в нем нет исходников и на него может быть ограниченный доступ на запись, а в репо с исходниками нет артефактов сборки. Кроме того можно быстро откатить кривой релиз через revert.
Что-то я не пойму в чем разница между pdf.js и pdfjs-dist?В одном лежат исходники, в другом собранные бандлы.
const preloadImages = document.querySelectorAll('.pr-bub');
const preloadImagesAnimationInterval = setInterval((state) => {
const item = preloadImages[state.index];
item.classList.toggle('animationPreBub', state.addClass);
state.index--;
if (state.index < 0) {
state.addClass = !state.addClass;
state.index = preloadImages.length - 1;
}
}, 300, {
addClass: true,
index: preloadImages.length - 1,
});
new Promise(resolve => {
// здесь код выполняется синхронно
resolve();
}).then(() => {
// здесь уже асинхронно, в ближайшем микротаске после вызова resolve выше
});
Promise.resolve().then(() => {
// здесь тоже асинхронно, в ближайшем микротаске
});
много вычисленийЭто не про асинхронность.
Accept
.fetch()
не ждет завершения всего запроса, он резолвится когда получены все заголовки.response.text()
и response.json()
нужен чтоб дождаться считывания всего тела ответа, притом response.json()
еще и позволяет браузеру парсить json из ответа потоково прямо во время скачивания, опять же не блокируя поток js/ui. Promise.all(arr.map(p => {
const link = `http://195.112.117.82:5080/photo?tov_code_internet=${encodeURIComponent(p)}`;
return new Promise(resolve => {
$.get(link, resolve);
});
})).then(dataArr => {
for (const data of dataArr) {
const $obj = $(data);
const content = $obj[19].innerHTML;
const title = $obj[7].innerText;
// по хорошему регулярки надо вынести наверх,
// чтобы они компилировались 1 раз
const text = content
.replace(/[\n\r]/g, ' ')
.replace (/\s{2,}/g, ' ');
console.log(text + " " + title);
}
}).catch(err => {
console.error(err);
});