CodeRoll | Frontend
4.83K subscribers
1.62K photos
73 videos
1 file
949 links
— Лучшее для разработчика и дизайнера / IT инструменты, курсы и книги
— Веб-разработка на JS, HTML, CSS, React, Vue,Angular

Купить рекламу: https://telega.in/c/coderoll

Чат: https://t.iss.one/coderoll_chat

По всем вопросам пишите сюда - @yankovsky_ads
Download Telegram
Что такое Module Pattern?

Ответ:
Module Pattern — это паттерн проектирования в JavaScript, который позволяет создавать модули с приватными переменными и методами, используя замыкания.

Ставь ❤️ если знаешь ответ
Если нет — ставь 💅

Coderoll | Frontend
💅61
Разбираем вопрос с 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
👍31
Что такое Lazy Loading?

Ответ:
Lazy Loading — это техника отложенной загрузки ресурсов (например, изображений или скриптов), когда они загружаются только тогда, когда становятся необходимыми (например, при прокрутке страницы). Это улучшает производительность приложения.

Ставь ❤️ если знаешь ответ
Если нет — ставь 💅

Coderoll | Frontend
8💅1
Что такое Symbol в JavaScript?

Ответ:
Symbol — это уникальный и неизменяемый тип данных, часто используемый как уникальный идентификатор для свойств объектов. Каждый вызов Symbol() создаёт новый уникальный символ.

Ставь ❤️ если знаешь ответ
Если нет — ставь 💅

Coderoll | Frontend
💅32
Deno — это новый инструмент для работы с JavaScript и TypeScript от создателя Node.js

Deno позиционируется как безопасная альтернатива Node.js с улучшенными возможностями для работы с модулями и встроенным TypeScript. Имеет улучшенную безопасность благодаря контролю за доступом к файлам, сети и процессам.

👀 Читать доку

Coderoll | Frontend
Как работает метод map?

Ответ:
Метод map создаёт новый массив, применяя указанную функцию к каждому элементу исходного массива. При этом исходный массив не изменяется.

Ставь ❤️ если знаешь ответ
Если нет — ставь 💅

Coderoll | Frontend
💅21
Как работает метод some?

Ответ:
Метод some проверяет, удовлетворяет ли хотя бы один элемент массива заданному условию. Если хотя бы один элемент соответствует условию, метод возвращает true, иначе — false.

Ставь ❤️ если знаешь ответ
Если нет — ставь 💅

Coderoll | Frontend
1💅1
✈️ Углублённый курс по JavaScript [2024, RU]

Курс рассчитан на разработчиков, уже знакомых с основами языка и желающих углубить свои знания. Здесь вы освоите продвинутые темы для того, чтобы использовать все крутые возможности JavaScript.

Особое внимание уделяется переменным и функциям, Event Loop и асинхронности, ООП, Symbol, Reflect, Proxy, Map и Set, итераторам, модулям и другим важным особенностям JavaScript.


🔤 Скачать курс 🔤

Coderoll | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопросы с собеседования: Promise.all

Очень часто на собеседованиях любят давать заданию что бы собеседуемый написал свою реализацию 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
Что такое IIFE (Immediately Invoked Function Expression)?

Ответ:
IIFE — это немедленно исполняемая функция, которая выполняется сразу после её определения. Она используется для создания изолированной области видимости, чтобы избежать загрязнения глобального пространства имён.

Ставь ❤️ если знаешь ответ
Если нет — ставь 💅

Coderoll | Frontend
3💅1
⚡️Что такое гиперссылка?

Ответ:
Часть гипертекстового документа, ссылающаяся на другой элемент (команда, текст, заголовок, примечание, изображение) в самом документе, на другой объект (файл, каталог, приложение), расположенный на локальном диске или в компьютерной сети, либо на элементы этого объекта.

Ставь ❤️ если знаешь ответ
Если нет — ставь 💅

Coderoll | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
3
JS, это однопоточный язык?

Ответ:
JavaScript (JS) является однопоточным языком программирования. Это означает, что у вас есть только один основной поток выполнения кода, который обрабатывает все инструкции последовательно (или синхронно).
Веб-браузеры, в которых JavaScript обычно исполняется, также однопоточные в своей основе.

Однако в JavaScript также есть концепция асинхронного программирования, которая позволяет выполнять операции ввода-вывода (например, запросы к серверу или чтение файлов) без блокировки основного потока выполнения.

Ставь ❤️ если знаешь ответ
Если нет — ставь 💅

Coderoll | Frontend
9💅2
⚡️ Какие типы данных существуют в JavaScript?

Ответ:
- string
- number
- boolean
- bigInt
- symbol
- null
- undefined
- object


Ставь ❤️ если знаешь ответ
Если нет — ставь 💅

Coderoll | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
4💅3😁1
Памятка по определению скоупов ответственности в FSD архитектуре

Coderoll | Frontend
👍2
⚡️Перечислите хотя бы 4 метода HTTP

Ответ:
GET, POST, PUT, DELETE

Ставь ❤️ если знаешь ответ
Если нет — ставь 💅

Coderoll | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
💅53
👩‍💻 Используем принципы “Чистого кода” в контексте JavaScript

Функции


Функции должны иметь только один уровень абстракции

❗️ Проблема: Функция processOrder содержит код как высокого уровня абстракции (логика обработки заказа), так и низкого уровня (расчет суммы и проверка на складе). Это делает функцию сложной для понимания и поддержки

Чистый код: В исправленном примере processOrder остается на одном уровне абстракции и вызывает вспомогательные функции (calculateTotalAmount и checkStockAvailability), которые решают низкоуровневые задачи

Coderoll | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2
Используем принципы “Чистого кода” в контексте JavaScript.

Функции


❗️ Не создавайте глобальные функции, которые могут создать конфликт с аналогичными функциями сторонних библиотек

Давайте разберем на примере: что, если вы хотите расширить собственный метод JavaScript Array, чтобы иметь метод diff, который мог бы показать разницу между двумя массивами?


Вы можете написать свою новую функцию в Array.prototype, но она может конфликтовать с другой библиотекой, которая попытается сделать то же самое

Что, если эта другая библиотека просто использует diff, чтобы найти разницу между первым и последним элементами массива?

Вот почему было бы гораздо лучше просто использовать классы ES2015/ES6 и просто расширить глобальный Array.

Coderoll | Frontend
👍3
Что такое Callback Hell?

Ответ:
Callback Hell — это ситуация, когда код становится трудно читаемым и поддерживаемым из-за глубокой вложенности коллбэков. Это часто происходит при работе с асинхронными операциями. Проблему можно решить с помощью Promises или Async/Await.

Ставь ❤️ если знаешь ответ
Если нет — ставь 💅

Coderoll | Frontend
💅3
👩‍💻 Используем принципы “Чистого кода” в контексте JavaScript

Функции


Функции должны делать что-то одно


❗️ Это самое важное правило в программной инженерии

Когда функции делают больше, чем одно, их сложнее составлять, тестировать и рассуждать о них

Когда вы можете изолировать функцию только для одного действия, ее можно легко рефакторить (переписывать, исправлять), и ваш код будет читаться намного чище

Coderoll | Frontend
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2