Frontend Interview - собеседования по Javascript / Html / Css
Канал для подготовки к собеседованиям по фронтенду Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront Купить рекламу: https://telega.in/c/frontendinterview Канал в реестре РКН: https://rknn.link/su
Показати більше📈 Аналітичний огляд Telegram-каналу Frontend Interview - собеседования по Javascript / Html / Css
Канал Frontend Interview - собеседования по Javascript / Html / Css (@frontendinterview) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 10 771 підписників, посідаючи 11 425 місце в категорії Технології та додатки та 60 327 місце у регіоні Росія.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 10 771 підписників.
За останніми даними від 02 липня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -93, а за останні 24 години на -10, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 7.89%. Протягом перших 24 годин після публікації контент зазвичай збирає N/A% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 850 переглядів. Протягом першої доби публікація в середньому набирає 0 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 2.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як javascript, браузер, html, css, видимость.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“Канал для подготовки к собеседованиям по фронтенду
Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront
Купить рекламу: https://telega.in/c/frontendinterview
Канал в реестре РКН:
https://rknn.link/su”
Завдяки високій частоті оновлень (останні дані отримано 03 липня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
String.prototype.indexOf(searchString [, position]): number
Где:
- searchString — строка в которой нужно искать.
- position — индекс элемента, с которого начинается поиск.
Чтобы реализовать такой поиск воспользуемся скользящим окном, а точнее его частной реализацией, алгоритмом Рабина-Карпа.
Скользящее окно — это алгоритм, который использует область фиксированной длины внутри массива. Двигая эту область, можно получать данные о группе рядом стоящих элементов массива. В нашем случае длина окна будет равна длине подстроки, по которой производится поиск.
// string - строка по которой ведем поиск
// substr - подстрока, которую ищем
// pos - стартовая позиция
function myIndexOf(string, substr, pos = 0) {
// запускаем цикл, от pos до (конца_строки - длина_окна)
for (let i = pos; i < string.length - substr.length + 1; i++) {
// если наша подстрока === содержимому окна, то заканчиваем работу и возвращаем index
if (substr === string.substr(i, substr.length)) {
return i;
}
}
// Если ничего не найдено, то возвращаем -1
return -1;
}
👉 @frontendInterview"_" в логине. Поэтому вам необходимо написать функцию, которая примет на вход массив из данных пользователей и вернет только те данные, логин в которых имеет символ "_".
Пример:
Исходные данные:
[ [ "foo", "foo@foo.com" ], [ "bar_", "bar@bar.com" ] ]
Результат:
[ [ "bar_", "bar@bar.com" ] ]
👉 @frontendInterview let cat = {
name: 'Tom',
isHunter: true
}
let mouse = {
name: 'Jerry',
isHunter: false
}
mouse = cat;
cat.isHunter = false;
mouse.isHunter = undefined;
console.log(mouse.isHunter);
Разберёмся, как выполняется этот код.
1. В начале переменные mouse и cat указывают на собственные объекты.
2. В строке mouse = cat мы присваиваем переменной mouse ссылку на объект cat. Можно рассматривать это как "связывание" переменных. Теперь обе переменные указывают на один и тот же объект { name: 'Tom', isHunter: true}.
3. Теперь mouse.name и cat.name будут менять значения свойства одного и того же объекта.
4. Последнее изменение в этом объекте происходит присваиванием значения undefined ключу isHunter.
5. Выводя в консоль значение ключа isHunter, получим последнее его обновление — undefined.
👉 @frontendInterviewcompose(f, g, ...)(x) == f(g(...(x))).
Композиция – основа функционального подхода. Операция композиции в теории категорий определяется для разных сущностей. Но сейчас мы обратим внимание именно на композицию функций.
Нам нужно создать функцию, которая принимает массив других функций и возвращает новую функцию.
Используем правило «Не думай, просто пиши» 🙂
const compose = (...fns) => x => // функция которую нам надо реализоватьВ условии нам подсказали как это сделать — compose(f,g, ...) = f(g(...(x))). Если сходу решение в голову не приходит, давайте попробуем посмотреть на примерах. Композиция для одной функции — это сама функция:
compose(f) = fКомпозиция для двух функций:
compose(f,g) = x => {
const prevResult = g(x) // выполнили g
return f(prevResult) // выполнили f
}
Тогда общее решение выглядит так:
const compose = (...fns) => x => fns.reduceRight((acc, fn) => fn(acc), x)Для каждой предыдущей функции из массива вызовите её на результате выполнения следующей. Тут важно что функции выполняются справа налево. 👉 @frontendInterview
const multipleTwo = (n) => n * 2;Функция может быть передаваемым аргументом другой функции:
async function loadData(func) {
loading = true;
// другой код относящийся к инициализации статусов загрузки
await func();
loading = false;
// другой код относящийся к обработке статуса загрузки
}
function getData() {
// код получения данных с сервера
}
loadData(getData);
Функции могут быть возвращаемым значением другой функции:
function makeAdder(x) {
return function(y) {
return x + y;
};
};
👉 @frontendInterview
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
