en
Feedback

Don't get caught by a cheater! Telemetrio finds and tags such channels 👉 If you want to see the tag, subscribe

Frontend | Вопросы собесов

Frontend | Вопросы собесов

Open in Telegram

Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads

Show more

📈 Analytical overview of Telegram channel Frontend | Вопросы собесов

Channel Frontend | Вопросы собесов (@easy_javascript_ru) in the Russian language segment is an active participant. Currently, the community unites 17 352 subscribers, ranking 7 468 in the Technologies & Applications category and 37 783 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 17 352 subscribers.

According to the latest data from 03 November, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -283 over the last 30 days and by -12 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 6.93%. Within the first 24 hours after publication, content typically collects 4.41% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 1 202 views. Within the first day, a publication typically gains 765 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 4.
  • Thematic interests: Content is focused on key topics such as ставь, браузер, html, border, flex.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
“Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads”

Thanks to the high frequency of updates (latest data received on 04 November, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

17 352
Subscribers
-1224 hours
-997 days
-28330 days
Posts Archive
\n\nВывод в консоль при создании компонента\nМиксин: created\nКомпонент: created\n\nVue 3: хуки вызываются так же \nЕсли использовать setup(), он выполнится после хуков миксина \nimport { onMounted } from \"vue\";\nexport default {\n mixins: [myMixin],\n setup() {\n console.log(\"🚀 setup()\");\n },\n mounted() {\n console.log(\"📦 Компонент: mounted\");\n }\n};\n\nВывод в консоль\nМиксин: mounted\nsetup()\nКомпонент: mounted\n\nСтавь 👍 и забирай 📚 Базу знаний","datePublished":"2025-04-21T09:10:13Z","dateModified":"2025-04-21T09:10:13Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":2646},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":4},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":12}]}},{"@type":"ListItem","position":7,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1389","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1389","mainEntityOfPage":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1389","headline":"🤔 Какие основные вещи присущи HTML? HTML задаёт структуру документа: заголовки, параграфы, списки, изображени…","articleBody":"🤔 Какие основные вещи присущи HTML?\n\nHTML задаёт структуру документа: заголовки, параграфы, списки, изображения, формы. В HTML важны семантика, вложенность, правильное использование тегов и атрибутов. Он обеспечивает основу, на которую накладываются стили и поведение.\n\nСтавь 👍 если знал ответ, 🔥 если нет\nЗабирай 📚 Базу знаний","datePublished":"2025-04-20T16:10:07Z","dateModified":"2025-04-20T16:10:07Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":2939},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":12},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":12}]}},{"@type":"ListItem","position":8,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1388","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1388","mainEntityOfPage":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1388","headline":"🤔 Для чего в js нужна асинхронность? JavaScript – однопоточный язык, где код выполняется **последовательно, н…","articleBody":"🤔 Для чего в js нужна асинхронность?\n\nJavaScript – однопоточный язык, где код выполняется **последовательно, но иногда мы ждём ответа (запрос в интернет, чтение файла, таймер). Если всё делать синхронно, программа зависнет. \n\n🟠Проблема синхронного кода \nПредставьте, что мы загружаем данные из API синхронно: \nconst data = fetch(\"https://api.example.com/users\"); // ❌ Ожидание ответа\nconsole.log(\"Данные загружены:\", data);\n\n🟠Асинхронность решает эту проблему \nАсинхронный код не блокирует выполнение программы\nfetch(\"https://api.example.com/users\")\n .then(response => response.json())\n .then(data => console.log(\"Данные загружены:\", data));\n\nconsole.log(\"Этот код выполнится сразу! 🚀\");\n\n🚩Как работает асинхронность в JS? \n \nCallbacks (обратные вызовы) – старый способ. \nPromises (fetch(), then/catch) – современный вариант. \nasync/await – удобный синтаксис для асинхронного кода. \nasync/await – лучший способ писать асинхронный код \nasync function getData() {\n try {\n let response = await fetch(\"https://api.example.com/users\");\n let data = await response.json();\n console.log(\"Данные:\", data);\n } catch (error) {\n console.error(\"Ошибка загрузки:\", error);\n }\n}\n\ngetData();\nconsole.log(\"Этот код выполняется, пока ждём данные!\");\n\n🚩Где нужна асинхронность? \n\nЗапросы к серверу \nЧтение файлов\nТаймеры\nРабота с базами данных \nВзаимодействие с пользователем (ожидание ввода) \n\nСтавь 👍 и забирай 📚 Базу знаний","datePublished":"2025-04-20T09:10:13Z","dateModified":"2025-04-20T09:10:13Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":3369},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":10},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":31}]}},{"@type":"ListItem","position":9,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1387","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1387","mainEntityOfPage":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1387","headline":"🤔 Что ещё является важной частью понимания кода? Структура проекта, читаемость, консистентность, наличие доку…","articleBody":"🤔 Что ещё является важной частью понимания кода?\n\nСтруктура проекта, читаемость, консистентность, наличие документации, комментирование сложных участков и покрытие тестами. Также важен контекст — бизнес-цель и поведение кода.\n\nСтавь 👍 если знал ответ, 🔥 если нет\nЗабирай 📚 Базу знаний","datePublished":"2025-04-19T16:10:07Z","dateModified":"2025-04-19T16:10:07Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":2997},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":9},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":9}]}},{"@type":"ListItem","position":10,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1386","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1386","mainEntityOfPage":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1386","headline":"🤔 Как реализовать адаптивную верстку? Адаптивная верстка (responsive design) – это метод создания веб-страниц…","articleBody":"🤔 Как реализовать адаптивную верстку?\n\nАдаптивная верстка (responsive design) – это метод создания веб-страниц, которые корректно отображаются на разных устройствах (телефон, планшет, ноутбук, ПК). \n\n🟠Гибкие сетки (Flexbox, Grid, `max-width`) \nИспользование max-width вместо width\n.container {\n width: 100%; /* Контейнер занимает всю ширину */\n max-width: 1200px; /* Но не больше 1200px */\n margin: auto; /* Центрирование */\n}\n\nИспользование Flexbox\n.container {\n display: flex;\n flex-wrap: wrap; /* Перенос элементов, если не влезают */\n justify-content: space-between;\n}\n\n.item {\n width: 48%; /* Два элемента в ряд */\n}\n\n@media (max-width: 768px) {\n .item {\n width: 100%; /* Один элемент в ряд на маленьких экранах */\n }\n}\n\nИспользование CSS Grid\n.container {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 20px;\n}\n\n🟠Медиа-запросы (`@media`) \nИзменяют стили в зависимости от ширины экрана. \n/* Десктоп (от 1024px) */\nbody {\n font-size: 18px;\n}\n\n/* Планшеты (768px – 1023px) */\n@media (max-width: 1023px) {\n body {\n font-size: 16px;\n }\n}\n\n/* Телефоны (до 767px) */\n@media (max-width: 767px) {\n body {\n font-size: 14px;\n }\n}\n\n🟠Адаптивные изображения (`srcset`, `sizes`) \nПозволяет загружать разные изображения в зависимости от устройства. \n\"Адаптивное\n\n🟠Viewport (`meta viewport`) \nУправляет масштабированием на мобильных устройствах. \n\n\n🟠CSS-фреймворки (Bootstrap, Tailwind) \nФреймворки содержат готовые адаптивные классы. \nBootstrap (грид-система)\n
\n
\n
Контент
\n
Контент
\n
\n
\n\nTailwind CSS\n
\n
1
\n
2
\n
3
\n
\n\nСтавь 👍 и забирай 📚 Базу знаний","datePublished":"2025-04-19T09:10:10Z","dateModified":"2025-04-19T09:10:10Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":3221},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":21},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":53}]}},{"@type":"ListItem","position":11,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1385","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1385","mainEntityOfPage":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1385","headline":"Методичка: как сделать онлайн-встречи эффективнее Надоело ждать коллег, которые постоянно забывают о встречах…","articleBody":"Методичка: как сделать онлайн-встречи эффективнее\n\nНадоело ждать коллег, которые постоянно забывают о встречах, а отсутствие повестки и потерянные договоренности мешают нормально работать?\n\nКоманда МТС Линк собрала на 37 страницах полезные материалы, чек-листы и кейсы, которые помогают компаниям проводить эффективные совещания в онлайне с помощью сервиса Встречи.\n\nИз методички узнаете:\n- Как создать постоянную ссылку и подключаться на встречи в 2 клика, \n- Как делать заметки и работать с файлами, не переживая за качество связи и безопасность данных. \n- Как облегчает жизнь ИИ, который расшифровывает созвоны в текст и автоматически отправляет расшифровку на почту.\n\nЕще в методичке описаны 7 способов оценки текущей эффективности ваших онлайн-встреч. \n\nПолучить гайд можно бесплатно на сайте. \n\nСкачать\n\n#реклама 16+\nmts-link.ru\nО рекламодателе","datePublished":"2025-04-18T20:13:33Z","dateModified":"2025-04-20T18:32:21Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":1806}]}},{"@type":"ListItem","position":12,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1384","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1384","mainEntityOfPage":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1384","headline":"🤔 Какие хранилища есть в браузере? В браузере доступно несколько механизмов хранения данных: 1. localStorage…","articleBody":"🤔 Какие хранилища есть в браузере?\n\nВ браузере доступно несколько механизмов хранения данных:\n1. localStorage — постоянное хранилище строковых пар ключ-значение, сохраняется между сессиями браузера.\n2. sessionStorage — аналогично localStorage, но очищается при закрытии вкладки.\n3. cookies — небольшие объёмы данных, могут передаваться на сервер, доступны и клиенту, и серверу.\n4. IndexedDB — асинхронная база данных в браузере, подходит для хранения больших объёмов данных, включая объекты.\n5. CacheStorage — используется в PWA и сервис-воркерах для кэширования запросов и ответов.\nКаждое хранилище имеет своё назначение, ограничения и особенности использования.\n\nСтавь 👍 если знал ответ, 🔥 если нет\nЗабирай 📚 Базу знаний","datePublished":"2025-04-18T16:10:06Z","dateModified":"2025-04-18T16:10:06Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":2973},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":20},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":37}]}},{"@type":"ListItem","position":13,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1383","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1383","mainEntityOfPage":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1383","headline":"Устроиться фронтендером в Яндекс за выходные 26–27 апреля устраиваем Weekend Offer Frontend. До 23 апреля ост…","articleBody":"Устроиться фронтендером в Яндекс за выходные\n\n26–27 апреля устраиваем Weekend Offer Frontend. До 23 апреля оставьте заявку на участие, 26 апреля пройдите технические собеседования, а 27 апреля познакомьтесь с командами и получите офер.\n\nВ мероприятии участвует 10 команд. Это команды Поиска: Еком-сценарии, Архитектура, Международный Поиск, Красота, Финансы, Видеопоиск. И команды Вертикалей: Путешествия, Недвижимость, Аренда, Авто.ру. Вы сможете пообщаться с менеджерами и выбрать проект, который покажется самым интересным.\n\nУзнать подробности и зарегистрироваться можно здесь.","datePublished":"2025-04-18T14:00:14Z","dateModified":"2025-04-20T14:14:16Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":1796},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":2},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":6}]}},{"@type":"ListItem","position":14,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1382","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1382","mainEntityOfPage":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1382","headline":"📅 Осталось 7 дней до конца краудфандинга Мы на финишной прямой! Если ты планировал присоединиться, но ещё не…","articleBody":"📅 Осталось 7 дней до конца краудфандинга\n\nМы на финишной прямой!\n\nЕсли ты планировал присоединиться, но ещё не успел, сейчас идеальный момент.\n\nВознаграждения за поддержку:\n\n🚀 PRO подписка к easyoffer 2.0 на 1 год по цене месячной подписки. Активировать подписку можно в любой момент, например, когда начнешь искать работу.\n➕ Приглашение на закрытое бета-тестирование \n\n👉 Поддержать easyoffer 2.0\n\nНе откладывай на последний момент\n\n📌 Если не получается оплатить через карту РФ — напишите мне @kivaiko, и мы найдём удобный способ","datePublished":"2025-04-18T11:06:26Z","dateModified":"2025-04-18T11:06:26Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":2208}],"sharedContent":{"@type":"SocialMediaPosting","datePublished":"2025-04-18T11:06:16Z"}}},{"@type":"ListItem","position":15,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1381","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1381","mainEntityOfPage":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1381","headline":"🤔 Какие статические методы promise знаешь? Promise – это объект, представляющий отложенный результат (асинхро…","articleBody":"🤔 Какие статические методы promise знаешь?\n\nPromise – это объект, представляющий отложенный результат (асинхронную операцию). Помимо new Promise(), у Promise есть статические методы, которые помогают работать с несколькими промисами. \n\n🟠`Promise.resolve(value)` – создаёт выполненный промис \nВозвращает успешно выполненный Promise с переданным значением. \nPromise.resolve(42).then(console.log); // 42\n\n🟠`Promise.reject(error)` – создаёт отклонённый промис \nВозвращает промис в состоянии \"отклонён\" (rejected). \nPromise.reject(\"Ошибка!\").catch(console.error); // \"Ошибка!\"\n\n🟠`Promise.all(promises)` – ждёт ВСЕ промисы или первый `reject` \nВыполняет все промисы параллельно и ждёт, пока ВСЕ выполнятся. \nЕсли один промис отклонится, Promise.all немедленно выдаст ошибку. \nPromise.all([\n Promise.resolve(10),\n Promise.resolve(20),\n Promise.resolve(30),\n]).then(console.log); // [10, 20, 30]\n\nОшибка прерывает выполнение \nPromise.all([\n Promise.resolve(1),\n Promise.reject(\"Ошибка!\"),\n Promise.resolve(3),\n]).catch(console.error); // \"Ошибка!\"\n\n🟠`Promise.allSettled(promises)` – ждёт ВСЕ промисы, не падает при `reject` \nВозвращает массив состояний (fulfilled или rejected) каждого промиса. \nНикогда не отклоняется, даже если есть ошибки. \nPromise.allSettled([\n Promise.resolve(100),\n Promise.reject(\"Ошибка!\"),\n Promise.resolve(300),\n]).then(console.log);\n\nВыведет\n[\n { status: \"fulfilled\", value: 100 },\n { status: \"rejected\", reason: \"Ошибка!\" },\n { status: \"fulfilled\", value: 300 }\n]\n\n🟠`Promise.race(promises)` – ждёт ТОЛЬКО первый завершённый промис \nВозвращает результат ПЕРВОГО выполненного или отклонённого промиса. \nPromise.race([\n new Promise(res => setTimeout(() => res(\"Промис 1\"), 500)),\n new Promise(res => setTimeout(() => res(\"Промис 2\"), 300)),\n]).then(console.log); // \"Промис 2\" (он быстрее)\n\n🟠`Promise.any(promises)` – ждёт ПЕРВЫЙ успешный промис \nВозвращает результат ПЕРВОГО выполненного (fulfilled) промиса. \nЕсли ВСЕ промисы отклонены (rejected), возвращает AggregateError. \nPromise.any([\n Promise.reject(\"Ошибка 1\"),\n Promise.resolve(\"Успех!\"),\n Promise.reject(\"Ошибка 2\"),\n]).then(console.log); // \"Успех!\"\n\nОшибка, если все промисы reject \nPromise.any([\n Promise.reject(\"Ошибка 1\"),\n Promise.reject(\"Ошибка 2\"),\n]).catch(console.error); // AggregateError: Все промисы отклонены\n\nСтавь 👍 и забирай 📚 Базу знаний","datePublished":"2025-04-18T09:10:12Z","dateModified":"2025-04-18T09:10:12Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":2775},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":26},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":44}]}},{"@type":"ListItem","position":16,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1380","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1380","mainEntityOfPage":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1380","headline":"Как легко прокачать навыки верстки и найти работу? Присоединяйся к каналам опытного верстальщика: 2. Вёрстка…","articleBody":"Как легко прокачать навыки верстки и найти работу? \n\nПрисоединяйся к каналам опытного верстальщика: \n2. Вёрстка сайтов | HTML, CSS, JS — здесь собраны бесплатные, структурированные уроки и различные материалы по HTML, CSS, JS, а также советы по заработку на фрилансе.\n\n2. Работа — вёрстка и фронтенд — канал с лучшими вакансиями и проектами с фриланса по вёрстке и фронтенду\n\nНаучись и зарабатывай на верстке!","datePublished":"2025-04-18T07:05:11Z","dateModified":"2025-04-20T14:14:16Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":1811},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":1}]}},{"@type":"ListItem","position":17,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1379","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1379","mainEntityOfPage":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1379","headline":"Искусственный интеллект помогает больше продавать Битрикс24 CRM + Ai упрощает работу менеджера. Расшифровывае…","articleBody":"Искусственный интеллект помогает больше продавать\n\nБитрикс24 CRM + Ai упрощает работу менеджера. Расшифровывает записи звонков клиентам и сам заполняет карточку сделки.\nМенеджер в это время уже звонит следующему клиенту.\n\nПопробуйте умную CRM \n\nПопробовать\n\n#реклама 16+\nbitrix24.ru\nО рекламодателе","datePublished":"2025-04-17T19:34:21Z","dateModified":"2025-04-19T17:45:46Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":2009},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":3}]}},{"@type":"ListItem","position":18,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1378","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1378","mainEntityOfPage":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1378","headline":"🤔 Какая особенность в поведении у асинхронных callback? Асинхронные callback-и не выполняются мгновенно. Они…","articleBody":"🤔 Какая особенность в поведении у асинхронных callback?\n\nАсинхронные callback-и не выполняются мгновенно. Они ставятся в очередь событий (event loop) и запускаются после завершения текущего стека вызовов. Это означает, что:\n- Код после вызова асинхронного callback-а продолжается немедленно.\n- Callback может сработать позже, вне текущего потока.\n- Нужно учитывать асинхронный контекст при работе с состоянием, рендером и логикой приложения.\n\nСтавь 👍 если знал ответ, 🔥 если нет\nЗабирай 📚 Базу знаний","datePublished":"2025-04-17T16:10:03Z","dateModified":"2025-04-17T16:10:03Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":3065},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":11},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":20}]}},{"@type":"ListItem","position":19,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1377","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1377","mainEntityOfPage":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1377","headline":"🤔 Что такое функциональное программирование? Функциональное программирование (FP) — это парадигма программиро…","articleBody":"🤔 Что такое функциональное программирование?\n\nФункциональное программирование (FP) — это парадигма программирования, в которой основной единицей кода являются функции. В FP функции работают с данными без изменения внешнего состояния и без побочных эффектов. \n\n🚩Основные принципы функционального программирования \n\n🟠Чистые функции (Pure Functions) \nФункция называется чистой, если: \nПри одинаковых входных данных всегда возвращает одинаковый результат. \nНе изменяет внешние переменные (нет побочных эффектов). \nНечистая функция (изменяет внешнюю переменную) \nlet count = 0;\nfunction increment() {\n count += 1; // изменяет внешнюю переменную\n return count;\n}\n\nЧистая функция (зависит только от аргументов) \nfunction increment(num) {\n return num + 1; // не меняет внешнее состояние\n}\nconsole.log(increment(5)); // 6\nconsole.log(increment(5)); // 6 (всегда одинаковый результат)\n\n🟠Иммутабельность (Immutable Data) \nДанные не изменяются, а создаются новые версии объектов. \nИзменение объекта (нефункциональный подход)\nconst user = { name: \"Alice\", age: 25 };\nuser.age = 26; // изменяет объект\n\nСоздание нового объекта (функциональный подход) \nconst user = { name: \"Alice\", age: 25 };\nconst updatedUser = { ...user, age: 26 }; // создаём новый объект\n\n🟠Функции высшего порядка (Higher-Order Functions) \nФункция, которая принимает другую функцию в аргумент или возвращает функцию. \nconst numbers = [1, 2, 3];\nconst squared = numbers.map(n => n * n); // [1, 4, 9]\n\nПример: Функция, возвращающая другую функцию \nconst multiplyBy = (factor) => (num) => num * factor;\nconst double = multiplyBy(2);\nconsole.log(double(5)); // 10\n\n🟠Функциональные методы массивов (map, filter, reduce) \nФункциональные методы позволяют не мутировать массив, а создавать новый. \nИспользуем map() для изменения элементов \nconst numbers = [1, 2, 3];\nconst doubled = numbers.map(num => num * 2); // [2, 4, 6]\n\nИспользуем filter() для фильтрации \nconst words = [\"apple\", \"banana\", \"kiwi\"];\nconst shortWords = words.filter(word => word.length < 6); // [\"kiwi\"]\n\nИспользуем reduce() для вычислений \nconst numbers = [1, 2, 3, 4];\nconst sum = numbers.reduce((acc, num) => acc + num, 0); // 10\n\n🟠Каррирование (Currying) \nРазделение функции на несколько функций, каждая принимает по одному аргументу. \nfunction sum(a, b) {\n return a + b;\n}\nconsole.log(sum(2, 3)); // 5\n\nПример: Каррированная функция \nconst sum = (a) => (b) => a + b;\nconsole.log(sum(2)(3)); // 5\n\nСтавь 👍 и забирай 📚 Базу знаний","datePublished":"2025-04-17T09:10:13Z","dateModified":"2025-04-17T09:10:13Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":3084},{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":20},{"@type":"InteractionCounter","interactionType":"https://schema.org/ShareAction","userInteractionCount":37}]}},{"@type":"ListItem","position":20,"item":{"@type":"SocialMediaPosting","@id":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1376","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1376","mainEntityOfPage":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru/posts/1376","headline":"ML-митап от ГИД Дата – решения, которые двигают бизнес 24 апреля в 18:00 разберём: –Кейсы, где ML-решения дал…","articleBody":"ML-митап от ГИД Дата – решения, которые двигают бизнес\n\n24 апреля в 18:00 разберём:\n–Кейсы, где ML-решения дали +% к доходам медиасервисов\n–Что сработало: рекомендации, поиск, генерация контента\n–Спикеры — Senior ML-инженеры с опытом внедрения в PREMIER, Rutube и др.\n\n🏃‍♂️ Для кого: ML-инженеры, Data Scientists, MLOps, продакт-менеджеры\n✨Бонусы: мерч, нетворкинг, afterparty\n\nМосква+online, офис ГИД Дата \nУчастие бесплатное ✅\nЗалетай, регистрация и подробности ниже \n\nУзнать больше\n\n#реклама \ngiddata.timepad.ru\nО рекламодателе","datePublished":"2025-04-16T18:33:23Z","dateModified":"2025-04-18T16:59:22Z","author":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"publisher":{"@type":"Organization","name":"Frontend | Вопросы собесов","url":"https://telemetr.io/en/channels/1917151177-easy_javascript_ru","image":"https://img.telemetr.io/c/25KaBb/5431453649143450783?ty=x"},"commentCount":0,"interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/ViewAction","userInteractionCount":1974}]}}]}
Битрикс24 дропнул новую фичу — онлайн-доски Теперь к вашему рабочему мессенджеру, видеозвонкам и таскам добавился еще один маст-хэв инструмент. Все это бесплатно и в одном комплекте. Офисные стикеры, берегитесь.😊 Узнать больше #реклама 16+ bitrix24.ru О рекламодателе

🤔 Для чего необходим viewport? Viewport – это область видимой части веб-страницы в браузере пользователя. 🟠`meta viewport` – ключ для адаптивного дизайна Чтобы страница корректно отображалась на мобильных устройствах, используется мета-тег viewport:
<meta name="viewport" content="width=device-width, initial-scale=1">
🟠Проблема без `meta viewport` (почему он нужен?) Без viewport (по умолчанию) На мобильных браузерах страницы загружаются как на ПК, но уменьшаются. Пользователям приходится зумить и скроллить. 🟠Дополнительные параметры `meta viewport` Управление масштабом
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
Отключение адаптации iOS Safari
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
Ставь 👍 и забирай 📚 Базу знаний

Ищешь высокооплачиваемые проекты? Попробуй SkillStaff SkillStaff — это платформа для ИТ-специалистов, менеджеров и креаторов,
Ищешь высокооплачиваемые проекты? Попробуй SkillStaff SkillStaff — это платформа для ИТ-специалистов, менеджеров и креаторов, которым мало одного оклада. Здесь можно найти клиентов, выполнять их проекты и увеличивать свой доход. - Проекты с гибким графиком: part time, full time, удаленка и гибрид - Ставка за час работы — та, что ты сам выбрал - Клиенты — ведущие бренды, проверенные с юридической точки зрения при регистрации на платформе - Оплата поступает ежемесячно на расчетный счет исполнителя - Удобный личный кабинет и функционал, автоматизирующий документооборот Все, что нужно для работы — иметь статус самозанятого или ИП, а платформа поможет со всеми нюансами. Регистрируйся прямо сейчас Зарегистрироваться #реклама 16+ skillstaff.ru О рекламодателе

🤔 В чём отличие хранения данных в local storage от куки? localStorage хранит данные на стороне клиента и позволяет сохранять информацию в виде ключ-значение без ограничения по времени, пока пользователь явно не удалит данные. Куки же могут передаваться на сервер при каждом запросе, имеют ограниченный объём (до 4KB) и срок действия. localStorage более удобен для долгосрочного хранения данных, которые не должны передаваться на сервер, тогда как куки полезны для передачи информации, такой как аутентификационные токены. localStorage работает только на клиентской стороне, куки же могут быть доступны и на стороне сервера. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Repost from easyoffer
Офигеть, вот это поддержка! 🔥 Скажу честно: когда я планировал запуск краудфандинговой кампании, в голове были разные вариан
Офигеть, вот это поддержка! 🔥 Скажу честно: когда я планировал запуск краудфандинговой кампании, в голове были разные варианты развития событий. Думал — ну, наверное, получится собрать 300 тысяч. В самом идеальном сценарии — может быть, миллион. Но больше всего я боялся, что запущу кампанию, и не получится собрать даже 300 т. Это был бы провал. Так много усилий, времени и денег вложено в проект… и если бы всё закончилось ничем — это бы сильно демотивировало. Но, ребята, мы превысили изначальную цель в 10 раз — 3 031 040 рублей! 🤯 Вся эта кампания — это одна большая проверка бизнес-модели на прочность. И я супер рад, что запустил всё публично. Люди видят, что EasyOffer реально нужен. Теперь нет сомнений — проект актуален, он будет прибыльным и будет развиваться. Мне приходит огромное количество сообщений в личку: кто-то когда-то давно пользовался сайтом, он помог с трудоустройством, и сейчас они уже не ищут работу — но всё равно поддержали. Это прям очень круто и трогательно. Никак не могу отделаться от мысли, что easyoffer — это ведь мой первый сайт. Учебный, пет-проект, просто для портфолио. И вот что из него вышло. Просто офигеть. Я не зря ушёл с работы, чтобы заниматься только им. Я поверил в этот проект — и сейчас вижу, что вы тоже в него верите. Для меня это очень многое значит. Огромное спасибо за вашу поддержку! ❤️

🤔 В какой последователности будут вызываться хуки при использовании хуков жизненного цикла в миксине и подключении его в компонент? В Vue 2 и Vue 3 можно подключать миксины (mixins), которые добавляют в компонент дополнительные методы, данные и хуки жизненного цикла. 🚩Пример в Vue 2 Миксин (myMixin.js)
export default {
  created() {
    console.log("🌍 Миксин: created");
  }
};
Компонент (MyComponent.vue)
<script>
import myMixin from "./myMixin.js";

export default {
  mixins: [myMixin],
  created() {
    console.log("📦 Компонент: created");
  }
};
</script>
Вывод в консоль при создании компонента
Миксин: created
Компонент: created
Vue 3: хуки вызываются так же Если использовать setup(), он выполнится после хуков миксина
import { onMounted } from "vue";
export default {
  mixins: [myMixin],
  setup() {
    console.log("🚀 setup()");
  },
  mounted() {
    console.log("📦 Компонент: mounted");
  }
};
Вывод в консоль
Миксин: mounted
setup()
Компонент: mounted
Ставь 👍 и забирай 📚 Базу знаний

🤔 Какие основные вещи присущи HTML? HTML задаёт структуру документа: заголовки, параграфы, списки, изображения, формы. В HTML важны семантика, вложенность, правильное использование тегов и атрибутов. Он обеспечивает основу, на которую накладываются стили и поведение. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Для чего в js нужна асинхронность? JavaScript – однопоточный язык, где код выполняется **последовательно, но иногда мы ждём ответа (запрос в интернет, чтение файла, таймер). Если всё делать синхронно, программа зависнет. 🟠Проблема синхронного кода Представьте, что мы загружаем данные из API синхронно:
const data = fetch("https://api.example.com/users"); // ❌ Ожидание ответа
console.log("Данные загружены:", data);
🟠Асинхронность решает эту проблему Асинхронный код не блокирует выполнение программы
fetch("https://api.example.com/users")
  .then(response => response.json())
  .then(data => console.log("Данные загружены:", data));

console.log("Этот код выполнится сразу! 🚀");
🚩Как работает асинхронность в JS? Callbacks (обратные вызовы) – старый способ. Promises (fetch(), then/catch) – современный вариант. async/await – удобный синтаксис для асинхронного кода. async/await – лучший способ писать асинхронный код
async function getData() {
    try {
        let response = await fetch("https://api.example.com/users");
        let data = await response.json();
        console.log("Данные:", data);
    } catch (error) {
        console.error("Ошибка загрузки:", error);
    }
}

getData();
console.log("Этот код выполняется, пока ждём данные!");
🚩Где нужна асинхронность? Запросы к серверу Чтение файлов Таймеры Работа с базами данных Взаимодействие с пользователем (ожидание ввода) Ставь 👍 и забирай 📚 Базу знаний

🤔 Что ещё является важной частью понимания кода? Структура проекта, читаемость, консистентность, наличие документации, комментирование сложных участков и покрытие тестами. Также важен контекст — бизнес-цель и поведение кода. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Как реализовать адаптивную верстку? Адаптивная верстка (responsive design) – это метод создания веб-страниц, которые корректно отображаются на разных устройствах (телефон, планшет, ноутбук, ПК). 🟠Гибкие сетки (Flexbox, Grid, `max-width`) Использование max-width вместо width
.container {
  width: 100%; /* Контейнер занимает всю ширину */
  max-width: 1200px; /* Но не больше 1200px */
  margin: auto; /* Центрирование */
}
Использование Flexbox
.container {
  display: flex;
  flex-wrap: wrap; /* Перенос элементов, если не влезают */
  justify-content: space-between;
}

.item {
  width: 48%; /* Два элемента в ряд */
}

@media (max-width: 768px) {
  .item {
    width: 100%; /* Один элемент в ряд на маленьких экранах */
  }
}
Использование CSS Grid
.container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;
}
🟠Медиа-запросы (`@media`) Изменяют стили в зависимости от ширины экрана.
/* Десктоп (от 1024px) */
body {
  font-size: 18px;
}

/* Планшеты (768px – 1023px) */
@media (max-width: 1023px) {
  body {
    font-size: 16px;
  }
}

/* Телефоны (до 767px) */
@media (max-width: 767px) {
  body {
    font-size: 14px;
  }
}
🟠Адаптивные изображения (`srcset`, `sizes`) Позволяет загружать разные изображения в зависимости от устройства.
<img 
  src="image-400.jpg" 
  srcset="image-800.jpg 800w, image-1200.jpg 1200w" 
  sizes="(max-width: 600px) 400px, (max-width: 1200px) 800px, 1200px" 
  alt="Адаптивное изображение">
🟠Viewport (`meta viewport`) Управляет масштабированием на мобильных устройствах.
<meta name="viewport" content="width=device-width, initial-scale=1">
🟠CSS-фреймворки (Bootstrap, Tailwind) Фреймворки содержат готовые адаптивные классы. Bootstrap (грид-система)
<div class="container">
  <div class="row">
    <div class="col-md-6 col-sm-12">Контент</div>
    <div class="col-md-6 col-sm-12">Контент</div>
  </div>
</div>
Tailwind CSS
<div class="grid grid-cols-2 md:grid-cols-3 sm:grid-cols-1 gap-4">
  <div class="bg-blue-500">1</div>
  <div class="bg-green-500">2</div>
  <div class="bg-red-500">3</div>
</div>
Ставь 👍 и забирай 📚 Базу знаний

Методичка: как сделать онлайн-встречи эффективнее Надоело ждать коллег, которые постоянно забывают о встречах, а отсутствие п
Методичка: как сделать онлайн-встречи эффективнее Надоело ждать коллег, которые постоянно забывают о встречах, а отсутствие повестки и потерянные договоренности мешают нормально работать? Команда МТС Линк собрала на 37 страницах полезные материалы, чек-листы и кейсы, которые помогают компаниям проводить эффективные совещания в онлайне с помощью сервиса Встречи. Из методички узнаете: - Как создать постоянную ссылку и подключаться на встречи в 2 клика, - Как делать заметки и работать с файлами, не переживая за качество связи и безопасность данных. - Как облегчает жизнь ИИ, который расшифровывает созвоны в текст и автоматически отправляет расшифровку на почту. Еще в методичке описаны 7 способов оценки текущей эффективности ваших онлайн-встреч. Получить гайд можно бесплатно на сайте. Скачать #реклама 16+ mts-link.ru О рекламодателе

🤔 Какие хранилища есть в браузере? В браузере доступно несколько механизмов хранения данных: 1. localStorage — постоянное хранилище строковых пар ключ-значение, сохраняется между сессиями браузера. 2. sessionStorage — аналогично localStorage, но очищается при закрытии вкладки. 3. cookies — небольшие объёмы данных, могут передаваться на сервер, доступны и клиенту, и серверу. 4. IndexedDB — асинхронная база данных в браузере, подходит для хранения больших объёмов данных, включая объекты. 5. CacheStorage — используется в PWA и сервис-воркерах для кэширования запросов и ответов. Каждое хранилище имеет своё назначение, ограничения и особенности использования. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

Устроиться фронтендером в Яндекс за выходные 26–27 апреля устраиваем Weekend Offer Frontend. До 23 апреля оставьте заявку на
Устроиться фронтендером в Яндекс за выходные 26–27 апреля устраиваем Weekend Offer Frontend. До 23 апреля оставьте заявку на участие, 26 апреля пройдите технические собеседования, а 27 апреля познакомьтесь с командами и получите офер. В мероприятии участвует 10 команд. Это команды Поиска: Еком-сценарии, Архитектура, Международный Поиск, Красота, Финансы, Видеопоиск. И команды Вертикалей: Путешествия, Недвижимость, Аренда, Авто.ру. Вы сможете пообщаться с менеджерами и выбрать проект, который покажется самым интересным. Узнать подробности и зарегистрироваться можно здесь.

Repost from easyoffer
📅 Осталось 7 дней до конца краудфандинга Мы на финишной прямой! Если ты планировал присоединиться, но ещё не успел, сейчас и
📅 Осталось 7 дней до конца краудфандинга Мы на финишной прямой! Если ты планировал присоединиться, но ещё не успел, сейчас идеальный момент. Вознаграждения за поддержку: 🚀 PRO подписка к easyoffer 2.0 на 1 год по цене месячной подписки. Активировать подписку можно в любой момент, например, когда начнешь искать работу. ➕ Приглашение на закрытое бета-тестирование 👉 Поддержать easyoffer 2.0 Не откладывай на последний момент 📌 Если не получается оплатить через карту РФ — напишите мне @kivaiko, и мы найдём удобный способ

🤔 Какие статические методы promise знаешь? Promise – это объект, представляющий отложенный результат (асинхронную операцию). Помимо new Promise(), у Promise есть статические методы, которые помогают работать с несколькими промисами. 🟠`Promise.resolve(value)` – создаёт выполненный промис Возвращает успешно выполненный Promise с переданным значением.
Promise.resolve(42).then(console.log); // 42
🟠`Promise.reject(error)` – создаёт отклонённый промис Возвращает промис в состоянии "отклонён" (rejected).
Promise.reject("Ошибка!").catch(console.error); // "Ошибка!"
🟠`Promise.all(promises)` – ждёт ВСЕ промисы или первый `reject` Выполняет все промисы параллельно и ждёт, пока ВСЕ выполнятся. Если один промис отклонится, Promise.all немедленно выдаст ошибку.
Promise.all([
    Promise.resolve(10),
    Promise.resolve(20),
    Promise.resolve(30),
]).then(console.log); // [10, 20, 30]
Ошибка прерывает выполнение
Promise.all([
    Promise.resolve(1),
    Promise.reject("Ошибка!"),
    Promise.resolve(3),
]).catch(console.error); // "Ошибка!"
🟠`Promise.allSettled(promises)` – ждёт ВСЕ промисы, не падает при `reject` Возвращает массив состояний (fulfilled или rejected) каждого промиса. Никогда не отклоняется, даже если есть ошибки.
Promise.allSettled([
    Promise.resolve(100),
    Promise.reject("Ошибка!"),
    Promise.resolve(300),
]).then(console.log);
Выведет
[
  { status: "fulfilled", value: 100 },
  { status: "rejected", reason: "Ошибка!" },
  { status: "fulfilled", value: 300 }
]
🟠`Promise.race(promises)` – ждёт ТОЛЬКО первый завершённый промис Возвращает результат ПЕРВОГО выполненного или отклонённого промиса.
Promise.race([
    new Promise(res => setTimeout(() => res("Промис 1"), 500)),
    new Promise(res => setTimeout(() => res("Промис 2"), 300)),
]).then(console.log); // "Промис 2" (он быстрее)
🟠`Promise.any(promises)` – ждёт ПЕРВЫЙ успешный промис Возвращает результат ПЕРВОГО выполненного (fulfilled) промиса. Если ВСЕ промисы отклонены (rejected), возвращает AggregateError.
Promise.any([
    Promise.reject("Ошибка 1"),
    Promise.resolve("Успех!"),
    Promise.reject("Ошибка 2"),
]).then(console.log); // "Успех!"
Ошибка, если все промисы reject
Promise.any([
    Promise.reject("Ошибка 1"),
    Promise.reject("Ошибка 2"),
]).catch(console.error); // AggregateError: Все промисы отклонены
Ставь 👍 и забирай 📚 Базу знаний

Как легко прокачать навыки верстки и найти работу? Присоединяйся к каналам опытного верстальщика: 2. Вёрстка сайтов | HTML, C
Как легко прокачать навыки верстки и найти работу? Присоединяйся к каналам опытного верстальщика: 2. Вёрстка сайтов | HTML, CSS, JS — здесь собраны бесплатные, структурированные уроки и различные материалы по HTML, CSS, JS, а также советы по заработку на фрилансе. 2. Работа — вёрстка и фронтенд — канал с лучшими вакансиями и проектами с фриланса по вёрстке и фронтенду Научись и зарабатывай на верстке!

Искусственный интеллект помогает больше продавать Битрикс24 CRM + Ai упрощает работу менеджера. Расшифровывает записи звонков
Искусственный интеллект помогает больше продавать Битрикс24 CRM + Ai упрощает работу менеджера. Расшифровывает записи звонков клиентам и сам заполняет карточку сделки. Менеджер в это время уже звонит следующему клиенту. Попробуйте умную CRM Попробовать #реклама 16+ bitrix24.ru О рекламодателе

🤔 Какая особенность в поведении у асинхронных callback? Асинхронные callback-и не выполняются мгновенно. Они ставятся в очередь событий (event loop) и запускаются после завершения текущего стека вызовов. Это означает, что: - Код после вызова асинхронного callback-а продолжается немедленно. - Callback может сработать позже, вне текущего потока. - Нужно учитывать асинхронный контекст при работе с состоянием, рендером и логикой приложения. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚 Базу знаний

🤔 Что такое функциональное программирование? Функциональное программирование (FP) — это парадигма программирования, в которой основной единицей кода являются функции. В FP функции работают с данными без изменения внешнего состояния и без побочных эффектов. 🚩Основные принципы функционального программирования 🟠Чистые функции (Pure Functions) Функция называется чистой, если: При одинаковых входных данных всегда возвращает одинаковый результат. Не изменяет внешние переменные (нет побочных эффектов). Нечистая функция (изменяет внешнюю переменную)
let count = 0;
function increment() {
    count += 1; // изменяет внешнюю переменную
    return count;
}
Чистая функция (зависит только от аргументов)
function increment(num) {
    return num + 1; // не меняет внешнее состояние
}
console.log(increment(5)); // 6
console.log(increment(5)); // 6 (всегда одинаковый результат)
🟠Иммутабельность (Immutable Data) Данные не изменяются, а создаются новые версии объектов. Изменение объекта (нефункциональный подход)
const user = { name: "Alice", age: 25 };
user.age = 26; // изменяет объект
Создание нового объекта (функциональный подход)
const user = { name: "Alice", age: 25 };
const updatedUser = { ...user, age: 26 }; // создаём новый объект
🟠Функции высшего порядка (Higher-Order Functions) Функция, которая принимает другую функцию в аргумент или возвращает функцию.
const numbers = [1, 2, 3];
const squared = numbers.map(n => n * n); // [1, 4, 9]
Пример: Функция, возвращающая другую функцию
const multiplyBy = (factor) => (num) => num * factor;
const double = multiplyBy(2);
console.log(double(5)); // 10
🟠Функциональные методы массивов (map, filter, reduce) Функциональные методы позволяют не мутировать массив, а создавать новый. Используем map() для изменения элементов
const numbers = [1, 2, 3];
const doubled = numbers.map(num => num * 2); // [2, 4, 6]
Используем filter() для фильтрации
const words = ["apple", "banana", "kiwi"];
const shortWords = words.filter(word => word.length < 6); // ["kiwi"]
Используем reduce() для вычислений
const numbers = [1, 2, 3, 4];
const sum = numbers.reduce((acc, num) => acc + num, 0); // 10
🟠Каррирование (Currying) Разделение функции на несколько функций, каждая принимает по одному аргументу.
function sum(a, b) {
    return a + b;
}
console.log(sum(2, 3)); // 5
Пример: Каррированная функция
const sum = (a) => (b) => a + b;
console.log(sum(2)(3)); // 5
Ставь 👍 и забирай 📚 Базу знаний

ML-митап от ГИД Дата – решения, которые двигают бизнес 24 апреля в 18:00 разберём: –Кейсы, где ML-решения дали +% к доходам м
ML-митап от ГИД Дата – решения, которые двигают бизнес 24 апреля в 18:00 разберём: –Кейсы, где ML-решения дали +% к доходам медиасервисов –Что сработало: рекомендации, поиск, генерация контента –Спикеры — Senior ML-инженеры с опытом внедрения в PREMIER, Rutube и др. 🏃‍♂️ Для кого: ML-инженеры, Data Scientists, MLOps, продакт-менеджеры ✨Бонусы: мерч, нетворкинг, afterparty Москва+online, офис ГИД Дата Участие бесплатное ✅ Залетай, регистрация и подробности ниже Узнать больше #реклама giddata.timepad.ru О рекламодателе