❓ Что такое Мутабельность (Mutability) и Иммутабельность (Immutability)?
Ответ:
Мутабельность означает, что объект может быть изменён после его создания. Иммутабельность означает, что объект остаётся неизменным, и любые изменения создают новый объект. В JavaScript строки и числа являются иммутабельными, в то время как массивы и объекты — мутабельными.
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
Ответ:
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
❤6💅3
❓ Что такое Event Loop в JavaScript?
Ответ:
Event Loop — это механизм, который позволяет JavaScript быть однопоточным языком, но при этом работать асинхронно. Он обрабатывает задачи из очереди событий, когда основной поток становится свободным. Event Loop проверяет Call Stack (стек вызовов), и если он пуст, берёт следующую задачу из очереди и выполняет её.
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
Ответ:
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
💅4❤2
Flexer
Визуальная песочница, в которой можно примерить разные свойства CSS Flexbox и увидеть, как они виляют на элементы на страничке
Если ещё не разобрались в флексах — сервис упростит изучение
👀 Посмотреть
Coderoll | Frontend
Визуальная песочница, в которой можно примерить разные свойства CSS Flexbox и увидеть, как они виляют на элементы на страничке
Если ещё не разобрались в флексах — сервис упростит изучение
Coderoll | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
shadcn/ui – кастомные UI-компоненты на Tailwind
🔥 Нравится Tailwind, но не хватает готовых компонентов? Попробуй shadcn/ui:
✅ Красивый, кастомизируемый UI
✅ Поддержка dark/light тем
✅ Работает с React + Tailwind
👀 Попробовать
Coderoll | Frontend
🔥 Нравится Tailwind, но не хватает готовых компонентов? Попробуй shadcn/ui:
✅ Красивый, кастомизируемый UI
✅ Поддержка dark/light тем
✅ Работает с React + Tailwind
👀 Попробовать
Coderoll | Frontend
❤2
❓ Что такое замыкание (closure) в JavaScript?
Ответ:
Замыкание — это функция, которая имеет доступ не только к своим собственным переменным, но и к переменным из внешней области видимости, даже после того, как внешняя функция завершила свою работу. Замыкания полезны для создания приватных переменных и функций, а также для работы с коллбэками и таймерами.
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
Ответ:
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
❤3💅2
TanStack Query – must-have для работы с API
Библиотека, которая делает работу с серверными данными в React и Vue в разы проще. Кэширование, рефетчинг, автоматические обновления – все на высшем уровне. Забудь про useEffect и стейты для загрузки данных!
👀 Попробовать
Coderoll | Frontend
Библиотека, которая делает работу с серверными данными в React и Vue в разы проще. Кэширование, рефетчинг, автоматические обновления – все на высшем уровне. Забудь про useEffect и стейты для загрузки данных!
👀 Попробовать
Coderoll | Frontend
❤1
❓ Что такое Module Pattern?
Ответ:
Module Pattern — это паттерн проектирования в JavaScript, который позволяет создавать модули с приватными переменными и методами, используя замыкания.
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
Ответ:
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
💅6❤1
Разбираем вопрос с FrontEnd-собеседования 👨💻
Как лучше ответить:
Модули JavaScript являются наиболее часто используемыми шаблонами проектирования для сохранения отдельных фрагментов кода независимыми от других компонентов. Это обеспечивает хорошую структурированность кода.
Модули должны быть функциями, вызываемыми прямо на месте (IIFE, Immediately-Invoked-Function-Expressions), чтобы обеспечить приватные области действия, то есть замыкание, которое защищает переменные и методы. Вот как примерно это может выглядеть:
Здесь мы создаем экземпляры приватных переменных и/или функций перед возвратом нашего объекта, который мы хотим вернуть. Код за пределами нашего замыкания не может получить доступ к этим приватным переменным, поскольку он не находится в той же области действия.
Coderoll | Frontend
Опишите шаблон проектирования "Модуль" в Javascript
Как лучше ответить:
Модули JavaScript являются наиболее часто используемыми шаблонами проектирования для сохранения отдельных фрагментов кода независимыми от других компонентов. Это обеспечивает хорошую структурированность кода.
Модули должны быть функциями, вызываемыми прямо на месте (IIFE, Immediately-Invoked-Function-Expressions), чтобы обеспечить приватные области действия, то есть замыкание, которое защищает переменные и методы. Вот как примерно это может выглядеть:
// declare private variables and/or functions
return {
// declare public variables and/or functions
}
})();
Здесь мы создаем экземпляры приватных переменных и/или функций перед возвратом нашего объекта, который мы хотим вернуть. Код за пределами нашего замыкания не может получить доступ к этим приватным переменным, поскольку он не находится в той же области действия.
Coderoll | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
❓ Что такое Lazy Loading?
Ответ:
Lazy Loading — это техника отложенной загрузки ресурсов (например, изображений или скриптов), когда они загружаются только тогда, когда становятся необходимыми (например, при прокрутке страницы). Это улучшает производительность приложения.
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
Ответ:
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
❤7💅1
❓ Что такое Symbol в JavaScript?
Ответ:
Symbol — это уникальный и неизменяемый тип данных, часто используемый как уникальный идентификатор для свойств объектов. Каждый вызов Symbol() создаёт новый уникальный символ.
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
Ответ:
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
💅3❤2
Deno — это новый инструмент для работы с JavaScript и TypeScript от создателя Node.js
Deno позиционируется как безопасная альтернатива Node.js с улучшенными возможностями для работы с модулями и встроенным TypeScript. Имеет улучшенную безопасность благодаря контролю за доступом к файлам, сети и процессам.
👀 Читать доку
Coderoll | Frontend
Deno позиционируется как безопасная альтернатива Node.js с улучшенными возможностями для работы с модулями и встроенным TypeScript. Имеет улучшенную безопасность благодаря контролю за доступом к файлам, сети и процессам.
👀 Читать доку
Coderoll | Frontend
❓ Как работает метод map?
Ответ:
Метод map создаёт новый массив, применяя указанную функцию к каждому элементу исходного массива. При этом исходный массив не изменяется.
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
Ответ:
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
💅2❤1
👩💻 В сеть вывалилась гигантская куча курсов и книг от топовых IT‑школ
Держи сотни гигабайт свежих уроков, и каждую неделю мы подкидываем ещё!
1402 ГБ — Python
1815 ГБ — Frontend
1515 ГБ — Backend
1300 ГБ — C / C++
694 ГБ — Java
546 ГБ — SQL & БД
411 ГБ — DevOps
898 ГБ — ИБ & Хакинг
212 ГБ — JavaScript
996 ГБ — Kotlin / Swift
173 ГБ — PHP
215 ГБ — GoLang
185 ГБ — Rust
517 ГБ — Linux
115 ГБ — QA / Тестирование
419 ГБ — GameDev
319 ГБ — 1C + Лицензии
617 ГБ — Машинное обучение
687 ГБ — Аналитика Данных
998 ГБ — Дизайн
Подписывайся и не плати за то, что можно получить бесплатно
Держи сотни гигабайт свежих уроков, и каждую неделю мы подкидываем ещё!
1402 ГБ — Python
1815 ГБ — Frontend
1515 ГБ — Backend
1300 ГБ — C / C++
694 ГБ — Java
546 ГБ — SQL & БД
411 ГБ — DevOps
898 ГБ — ИБ & Хакинг
212 ГБ — JavaScript
996 ГБ — Kotlin / Swift
173 ГБ — PHP
215 ГБ — GoLang
185 ГБ — Rust
517 ГБ — Linux
115 ГБ — QA / Тестирование
419 ГБ — GameDev
319 ГБ — 1C + Лицензии
617 ГБ — Машинное обучение
687 ГБ — Аналитика Данных
998 ГБ — Дизайн
Подписывайся и не плати за то, что можно получить бесплатно
❓ Как работает метод some?
Ответ:
Метод some проверяет, удовлетворяет ли хотя бы один элемент массива заданному условию. Если хотя бы один элемент соответствует условию, метод возвращает true, иначе — false.
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
Ответ:
Ставь ❤️ если знаешь ответ
Если нет — ставь 💅
Coderoll | Frontend
❤1💅1
Курс рассчитан на разработчиков, уже знакомых с основами языка и желающих углубить свои знания. Здесь вы освоите продвинутые темы для того, чтобы использовать все крутые возможности JavaScript.
Особое внимание уделяется переменным и функциям, Event Loop и асинхронности, ООП, Symbol, Reflect, Proxy, Map и Set, итераторам, модулям и другим важным особенностям JavaScript.
Coderoll | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
Каналы с IT мероприятиями
Подписывайся,
чтобы не пропустить 👨💻
1. IT мероприятия для стажеров и студентов
2. IT мероприятия по РФ
3. IT мероприятия и хакатоны
4. Бесплатные IT мероприятия
5. IT мероприятия онлайн
6. IT мероприятия Москва
7. IT мероприятия Санкт Петербург
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯1
Вопросы с собеседования: Promise.all
Очень часто на собеседованиях любят давать заданию что бы собеседуемый написал свою реализацию
Для начала вспомним работу оригинального
Он принимает коллекцию промисов, начинает одновременно их выполнять и возвращает новый промис. Если все переданные промисы выполнятся, возвращаемый промис тоже выполнится и в нём будет лежать массив результатов, причём в том же порядке. Но! Если какой-то промис вылетел с ошибкой, то
Таким образом у нас есть два сценария:
Позитивный: Когда все промисы завершились успешно. Тут в ответ придёт массив результатов с сохранением очерёдности.
Негативный: Когда какой-то промис завершился с ошибкой. Тут
Сначала попробуйте решить самостоятельно, можете написать свое решение в комментариях
Случай, когда у нас произошла ошибка, обрабатывать отдельно не нужно — возвращаемый промис автоматически перейдёт в состояние
Coderoll | Frontend
Очень часто на собеседованиях любят давать заданию что бы собеседуемый написал свою реализацию
Promise.all
, эту задачу я встречал во многих крупных компаниях. И хотелось бы поделиться с вами решением этой задачи с подробным объяснением. Для начала вспомним работу оригинального
Promise.all
.Он принимает коллекцию промисов, начинает одновременно их выполнять и возвращает новый промис. Если все переданные промисы выполнятся, возвращаемый промис тоже выполнится и в нём будет лежать массив результатов, причём в том же порядке. Но! Если какой-то промис вылетел с ошибкой, то
Promise.all
прекращает работу раньше и возвращаемый промис будет отклонён.Таким образом у нас есть два сценария:
Позитивный: Когда все промисы завершились успешно. Тут в ответ придёт массив результатов с сохранением очерёдности.
Негативный: Когда какой-то промис завершился с ошибкой. Тут
Promise.all
не будет ждать завершение оставшихся, а сразу перейдёт в состояние rejected с полученной ошибкой.Сначала попробуйте решить самостоятельно, можете написать свое решение в комментариях
Случай, когда у нас произошла ошибка, обрабатывать отдельно не нужно — возвращаемый промис автоматически перейдёт в состояние
rejected
.
// На вход к нам приходит массив промисов
Promise.all = (promises) => {
// Здесь будем хранить результаты успешно завершенных промисов
const results = []
// Количество промисов, которые осталось выполнить
// На данный момент не выполнился еще ни один промис!
let rest = promises.length
// Возвращаем, естественно, новый промис
return new Promise((resolve) => {
// Проходимся по списочку
promises.forEach((promise, index) => {
promise
// Если промис завершается успешно
.then((result) => {
// Кладём его в наше хранилище
// Причём сохраняем индекс, под которым он был в массиве `promises`
results[index] = result
// На один невыполненный промис стало меньше!
rest -= 1
// Если активных промисов больше нет, то резолвим результат
if (rest === 0) resolve(results)
})
})
})
}
Coderoll | Frontend
❤1👍1