Иначе говоря, в ООП-шном стиле и в функциональном (если я правильно понимаю).в обоих случаях процедурный стиль
Пока возникает ощущение, что всё это - сугубо вкусовщинаПо сути да, чисто вкусовщина.
const controller = { login }
export default controller
на export default login
Но для ноды terser редко используют for (const letter of target) {
if ( letter.toLowerCase() !== letter.toUpperCase() ) {
direct = letter + direct;
reversed = letter + reversed;
}
}
target.split('').reverse().join('')
0
), другая на конец строки (изначальный индекс target.length - 1
).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,
});
гибко задавать список необходимых полей сущностейНормально спроектированное RPC в принципе не отдает ничего лишнего, при этом минимизирует потребность нескольких вызовов за раз. Это позволяет делать апи с минимально возможными издержками.
0.1 + 0.2 != 0.3
, а кому-то нужен углубленный бэкграунд в алгоритмы, в теорию типов и в слабые модели памяти. Все сугубо индивидуально и сильно зависит от сферы, для которой ведется разработка.