JavaScript'er
Closed channel
Заявки приймаємо автоматично! Канал з лайфхаками для кожного поважаючого себе веб-розробника Запросити друга, якщо є: https://t.me/+my7itn9CGMplOTAy Зв'язок: @Ekater1na_admin
Show more7 103
Subscribers
-324 hours
-247 days
-7630 days
Posts Archive
7 101
💬Питання із співбесіди
Як клієнт взаємодіє із сервером?
Клієнт та сервер "говорять" між собою за допомогою HTTP-запитів. Клієнт відправляє запити (GET, POST і т. д.) на сервер, а сервер обробляє їх і висилає відповіді. Цей процес може включати обмін даними, які потім відображаються на сторінці клієнта.
JavaScript'ер
7 101
💎Корисна штука для для кодера
Undesign — величезна колекція безкоштовних інструментів та ресурсів для frontend-розробників та дизайнерів.
JavaScript'ер
7 101
😍ThreeJS знову дивує
reWorked - Double Matcap. Зроблено на html, css і JS.
Посилання на код *Тиць
JavaScript'ер
7 101
👌Гра камінь, ножиці, папір на чистому CSS
https://codepen.io/alvaromontoro/pen/BaaBYyz
JavaScript'ер
7 101
🔥Розбір завдання із співбесіди: Реалізація Promise.all
На співбесідах часто пропонують написати власні реалізацію стандартних функцій мови. Одним із таких завдань може бути написання своєї версії
Promise.all . Це чудовий спосіб перевірити розуміння асинхронного програмування та роботи з промісами.
Що таке Promise.all?
Promise.all - це метод, який приймає масив промісів і повертає новий проміс, який дозволяється, коли всі проміси в масиві успішно завершені, або відхиляється, якщо хоча б один проміс відхилено.
Завдання:
Написати функцію promiseAll , яка веде себе подібно до Promise.all .
Функція повинна:
1. Повертати проміс.
2. Дозволятися з масивом результатів, коли всі проміси виконані.
3. Відхилятися з тією ж причиною, що перший відхилений проміс з масиву.
Реалізація promiseAll
function promiseAll(promises) {
return new Promise((resolve, reject) => {
if (!Array.isArray(promises)) {
return reject(new TypeError('Arguments must be an array'));
}
const resolvedValues = [];
let resolvedCount = 0;
const promisesCount = promises.length;
if (promisesCount === 0) {
resolve(resolvedValues);
}
promises.forEach((promise, index) => {
Promise.resolve(promise)
.then(value => {
resolvedValues[index] = value;
resolvedCount += 1;
if (resolvedCount === promisesCount) {
resolve(resolvedValues);
}
})
.catch(reject);
});
});
}
Пояснення реалізації:
1. Функція promiseAll приймає масив промісів promises .
2. Якщо promises не є масивом, функція відхиляється з TypeError .
3. Створюються змінні для зберігання дозволених значень та лічильника дозволених промісів.
4. Проміси перебираються за допомогою forEach , обробляючись через Promise.resolve для підтримки непромісів.
5. Кожного разу, коли проміс дозволяється, його значення записується в resolvedValues , і збільшується resolvedCount .
6. При досягненні resolvedCount значення promisesCount resolvedValues повертається.
7. У разі відхилення будь-якого промісу основний проміс відхиляється.
Висновок:
Розуміння та реалізація Promise.all відображає хороші знання асинхронності у JavaScript. Це типове питання на співбесідах, яке перевіряє вміння кандидата працювати з промісами та асинхронним кодом.
JavaScript'ер7 101
💬Питання із співбесіди
Поясніть концепцію критичного шляху рендерингу веб-сторінки та як ви можете оптимізувати критичний шлях для прискорення завантаження сторінки.
Критичний шлях рендерингу - це послідовність кроків, які браузер виконує для перетворення HTML, CSS і JavaScript у пікселі на екрані. Оптимізація критичного шляху може охоплювати зменшення обсягу даних, що передаються на початковому етапі завантаження (наприклад, через мінімізацію коду, використання стиснення й оптимізацію зображень), усунення блокування ресурсів (наприклад, відкладене завантаження або асинхронне завантаження скриптів), оптимізацію порядку завантаження ресурсів (критичні стилі та скрипти першими), а також прискорення відтворення сторінки (використання кешу браузера та попереднє завантаження ресурсів). Це допомагає браузеру швидше відобразити вміст сторінки і поліпшити сприйняття продуктивності користувача.
JavaScript'ер
7 101
HTML. ID якого елемента необхідно вказати в атрибуті list тега input, щоб при наборі тексту в цьому інпуті випливав список варіантів (автодоповнення)?
7 101
🔥Корисний репозиторій на JS
Madge - створює графіки та шукає циклічні залежності на основі залежностей модулів CommonJS, AMD або ES6.
🐱Посилання на GitHub.
JavaScript
