Frontend Interview - собеседования по Javascript / Html / Css
Канал для подготовки к собеседованиям по фронтенду Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront Купить рекламу: https://telega.in/c/frontendinterview Канал в реестре РКН: https://rknn.link/su
Mostrar más📈 Análisis del canal de Telegram Frontend Interview - собеседования по Javascript / Html / Css
El canal Frontend Interview - собеседования по Javascript / Html / Css (@frontendinterview) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 10 799 suscriptores, ocupando la posición 11 430 en la categoría Tecnologías y Aplicaciones y el puesto 60 405 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 10 799 suscriptores.
Según los últimos datos del 25 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -84, y en las últimas 24 horas de 1, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 9.28%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 4.11% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 1 002 visualizaciones. En el primer día suele acumular 444 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 4.
- Intereses temáticos: El contenido se centra en temas clave como javascript, браузер, html, css, видимость.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Канал для подготовки к собеседованиям по фронтенду
Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront
Купить рекламу: https://telega.in/c/frontendinterview
Канал в реестре РКН:
https://rknn.link/su”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 26 junio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
/* Изменение элемента происхожит при наведении курсора */
.element:hover {
/* нужно подготовиться к изменению, которое уже происходит, код не сработает */
will-change: transform;
transition: transform 2s;
transform: rotate(30deg) scale(1.5);
}
Если изменение элемента происходит при клике на него, will-change можно включать при наведении курсора на элемент. Это даёт браузеру время подготовиться до того, как произойдёт изменение .
.element {
/* правила */
transition: transform 1s ease-out;
}
.element:hover {
/* браузер начинает готовиться к изменению состояния */
will-change: transform;
}
.element:active {
/* происходит изменение состояния */
transform: rotateY(180deg);
}
Если изменение происходит при наведении курсора на элемент, то можно включать will-change при наведении на родительский элемент:
.element {
transition: opacity 0.3s linear;
}
/* включаем will-change для элемента, когда мышка наводится на его родительский элемент */
.parent:hover .element {
will-change: opacity;
}
/* применение изменения, когда мышка наведена на элемент */
.element:hover {
opacity: 0.5;
}
🛠 Рекомендуется отключать will-change сразу после того, как закончится изменение элемента. Поэтому лучше назначать это свойство через JavaScript. Если назначить его через CSS, его невозможно будет убрать после выполнения изменения и оно будет продолжать расходовать ресурсы.
Иногда will-change допускается назначать через CSS. Это относится к часто используемым элементам (например, анимация кнопки или сайдбара) и к изменениям, которые происходят на странице постоянно (например, анимация, которая происходит при движении курсора мышки).
👉 @frontendInterviewWeb Worker, необходимо использовать метод terminate(). Этот метод останавливает выполнение worker'а, освобождает связанные с ним ресурсы и завершает его работу. После вызова terminate() объект worker больше не может быть использован.
Зачем уничтожать Web Worker?
Web Worker позволяет выполнять тяжелые операции в фоновом потоке, не блокируя основной поток (UI-поток). Однако, если worker больше не нужен, он продолжает существовать и занимает ресурсы (память, процессорное время). Чтобы избежать утечек памяти и оптимизировать работу приложения, важно уничтожать worker, когда он больше не используется.
Как использовать `terminate()`?
Вы вызываете метод terminate() на экземпляре объекта worker. Это мгновенно останавливает выполнение фонового скрипта.
// Создаем worker
const myWorker = new Worker('worker.js');
// Выполняем какие-то операции через worker
myWorker.postMessage('Hello, worker!');
// Завершаем работу worker, когда он больше не нужен
myWorker.terminate();
Важно помнить
- После вызова terminate() worker полностью уничтожается и больше не может отправлять или получать сообщения.
- Если есть обработчики событий, привязанные к worker (например, onmessage), они автоматически удаляются.
- Доступ к worker после вызова terminate() не приведет к ошибке, но никакие операции через него больше работать не будут.
const worker = new Worker('worker.js');
// Отправляем сообщение
worker.postMessage('Start working');
// Завершаем работу worker
worker.terminate();
// Попытка отправить сообщение после уничтожения worker
worker.postMessage('Will this work?'); // Ничего не произойдет, worker уже завершен
Когда еще уничтожается worker?
Если вы перезагружаете страницу или закрываете вкладку, все web worker автоматически уничтожаются браузером. Однако в рамках текущей сессии ответственность за уничтожение лежит на разработчике.
👉 @frontendInterviewЗа время работы в Яндексе Илья провел более 250 алгоритмических интервью..🚀В своем канале Илья делится 👇🏻 🩵личным опытом прохождения собеседований в различные компании 🩵практическими приемами для успешного прохождения алгоритмических интервью в Яндекс-подобных компаниях👌 Присоединяйтесь, чтобы получить инсайдерскую информацию о мире технических собеседований от человека с реальным опытом по обе стороны стола! ⚡️ https://t.me/+XvsKR3agYbxjMjBi
At the end of the first year there will be:
1000 + 1000 * 0.02 + 50 => 1070 inhabitants
At the end of the 2nd year there will be:
1070 + 1070 * 0.02 + 50 => 1141 inhabitants (** number of inhabitants is an integer **)
At the end of the 3rd year there will be:
1141 + 1141 * 0.02 + 50 => 1213
It will need 3 entire years.
Более общие заданные параметры:
p0, percent, aug (inhabitants coming or leaving each year), p (population to equal or surpass)
Функция nb_year должна возвращать n количество полных лет, необходимых для получения численности населения, большей или равной p.
aug - целое число, percent - положительное или нулевое плавающее число, p0 и p - положительные целые числа (> 0)
Примеры:
nb_year(1500, 5, 100, 5000) -> 15
nb_year(1500000, 2.5, 10000, 2000000) -> 10
👉 @frontendInterviewuseEffect. Когда компонент демонтируется, React вызывает функцию очистки, которую можно определить внутри useEffect.
import React, { useEffect } from 'react';
const MyComponent = () => {
useEffect(() => {
console.log('Component mounted');
// Функция очистки вызывается при демонтировании компонента
return () => {
console.log('Component will unmount');
};
}, []); // Пустой массив зависимостей означает, что эффект выполнится только при монтировании и демонтировании
return (
<div>
<p>My Component</p>
</div>
);
};
export default MyComponent;
Пример с реальным использованием
import React, { useEffect, useState } from 'react';
const WebSocketComponent = () => {
const [messages, setMessages] = useState([]);
useEffect(() => {
const socket = new WebSocket('ws://example.com/socket');
socket.onmessage = (event) => {
setMessages((prevMessages) => [...prevMessages, event.data]);
};
console.log('WebSocket connection opened');
return () => {
socket.close();
console.log('WebSocket connection closed');
};
}, []);
return (
<div>
<h1>WebSocket Messages</h1>
<ul>
{messages.map((message, index) => (
<li key={index}>{message}</li>
))}
</ul>
</div>
);
};
export default WebSocketComponent;
Открытие WebSocket соединения
const socket = new WebSocket('ws://example.com/socket');
Обработка входящих сообщений
socket.onmessage = (event) => {
setMessages((prevMessages) => [...prevMessages, event.data]);
};
Закрытие WebSocket соединения при демонтировании
return () => {
socket.close();
console.log('WebSocket connection closed');
};
👉 @frontendInterview
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
