Frontend собеседования – Telegram
Frontend собеседования
1.54K subscribers
383 photos
543 links
Подготовка к собеседованиям на позицию Frontend-разработчик

Еще больше ответов на сайте https://frontview-it.ru

JS собеседования - @frontview_js
Frontend работа - @frontview_vacancies
Все IT вакансии - @frontview_all_vacancies
Download Telegram
Тег <i> визуально выделяет текст курсивом без семантического акцента, тогда как <em> указывает на смысловое выделение (важность, ударение), что влияет на восприятие контента скринридерами и поисковыми системами. Оба тега отображаются курсивом по умолчанию, но <em> имеет логическую нагрузку.

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Для предотвращения действий браузера по умолчанию (например, отправки формы или перехода по ссылке) используется метод preventDefault() объекта события. В React события передаются как синтетические обертки над нативными.


function handleSubmit(e) {
e.preventDefault();
// Логика обработки
}


Метод вызывается внутри обработчика события. Для остановки всплытия события вверх по DOM-дереву дополнительно применяется stopPropagation().


function handleClick(e) {
e.stopPropagation();
// Действие
}


Эти методы работают со всеми синтетическими событиями React (onClick, onSubmit и др.).

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Альтернативный текст (атрибут alt) описывает содержание изображения для случаев, когда оно не загрузилось или недоступно. Также он используется скринридерами для озвучивания содержимого, что важно для доступности.


<img src="logo.png" alt="Логотип компании">


Если изображение декоративное, атрибут alt можно оставить пустым, чтобы скринридеры его игнорировали.


<img src="divider.png" alt="">


Корректный alt улучшает SEO, так как поисковые системы учитывают его при анализе контента.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Приведение типов — это преобразование значения одного типа в другой, явное или неявное. В TypeScript оно часто выполняется с помощью синтаксиса as или угловых скобок для совместимости типов.

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43
Оператор break прерывает выполнение текущего цикла for, while, do...while или блока switch, передавая управление коду, следующему после него.


for (let i = 0; i < 5; i++) {
if (i === 3) break; // Выход из цикла при i = 3
console.log(i);
}


В switch break предотвращает выполнение последующих case после совпадения. Без него выполнение продолжится до следующего break или конца блока.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
will-change — это CSS-свойство, которое указывает браузеру, какие свойства элемента могут измениться в будущем, позволяя заранее оптимизировать рендеринг.


.element {
will-change: transform, opacity;
}


Использовать его стоит только для элементов, анимация или изменение которых вызывает заметные лаги. Чрезмерное применение will-change увеличивает потребление памяти, поэтому его следует включать непосредственно перед анимацией и отключать после.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Server-Side Rendering (SSR) — это процесс рендеринга React-приложения на сервере с отправкой готового HTML клиенту. Основные преимущества: улучшенная SEO-индексация, быстрая первоначальная загрузка страницы и лучшая производительность на слабых устройствах.

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
В Git хэш (SHA-1, а теперь SHA-256) — это уникальный 40-символьный идентификатор, вычисляемый на основе содержимого коммита, дерева файлов или самого объекта.


git log --pretty=format:'%H' -n 1
# Выводит хэш последнего коммита


Хэш гарантирует целостность данных: любое изменение содержимого приводит к совершенно другому хэшу. Git использует эти хэши для ссылок между коммитами, создания веток и тегов.

Переход на SHA-256 улучшил криптостойкость, хотя SHA-1 всё ещё поддерживается для совместимости.

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Начальное значение поля ввода задаётся с помощью атрибута value для <input> и <textarea>, либо размещением текста между тегами для <textarea>.


<input type="text" value="Значение по умолчанию">
<textarea>Текст по умолчанию</textarea>


Для <select> начальное значение определяется атрибутом selected у <option>.


<select>
<option value="1">Первый</option>
<option value="2" selected>Второй</option>
</select>


В React/Vue начальное значение обычно управляется через состояние компонента.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
Числа с плавающей точкой (float/double) — это формат представления дробных чисел в IEEE 754, где число хранится в виде мантиссы и порядка. В JavaScript все числа — 64-битные float, что может приводить к неточностям в арифметике, поэтому для точных вычислений используют методы округления или целочисленные операции.

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Глобальная регистрация делает компонент доступным во всём приложении через Vue.component().


Vue.component('MyComponent', { /* options */ });


Локальная регистрация ограничивает область видимости компонента текущим экземпляром Vue через свойство components.


new Vue({
components: {
MyComponent: { /* options */ }
}
});


Глобальная регистрация увеличивает размер сборки, так как компонент включается даже если не используется. Локальная — предпочтительна для оптимизации.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Для изменения курсора при наведении используется CSS-свойство cursor с указанием типа курсора.


.element:hover {
cursor: pointer; /* Рука с пальцем */
}


Доступны стандартные варианты: default, pointer, text, move, not-allowed. Для кастомных изображений используется синтаксис:


.custom-cursor {
cursor: url('cursor.png'), auto; /* Своё изображение + fallback */
}


Размер кастомного курсора ограничен 128×128px в большинстве браузеров.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Для просмотра истории коммитов используется команда git log, которая отображает хронологию с хэшами, авторами и сообщениями. Дополнительные флаги типа --oneline, --graph или -p позволяют настроить формат вывода и детализацию.

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
JSX-трансформация — это процесс преобразования JSX-синтаксиса в вызовы React.createElement(). На этапе сборки Babel или другие транспиляторы конвертируют JSX в обычный JavaScript.


// До трансформации
const element = <div className="test">Hello</div>;

// После трансформации
const element = React.createElement('div', { className: 'test' }, 'Hello');


Трансформация позволяет писать декларативный HTML-подобный код, который затем превращается в оптимизированные вызовы React API. Современные сборщики автоматически обрабатывают JSX через плагины типа @babel/plugin-transform-react-jsx.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Атрибут required указывает, что поле формы обязательно для заполнения перед отправкой. Добавляется к элементам <input>, <select> и <textarea> без значения.


<input type="text" required>
<select required>
<option value="">Выберите</option>
</select>
<textarea required></textarea>


Браузер автоматически проверяет заполнение таких полей при отправке формы. Для кастомной валидации можно использовать JavaScript и CSS-псевдоклассы типа :invalid. Невалидные поля с required блокируют отправку формы.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Mapped types — это шаблонные типы, которые трансформируют свойства существующего типа, создавая новую модифицированную версию. Они используются для массового изменения модификаторов (readonly, optional) или преобразования типов полей без дублирования кода.

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Синтаксис async/await упрощает работу с промисами, делая асинхронный код похожим на синхронный.



async function fetchData() {
const response = await fetch('url'); // Ожидание выполнения промиса
const data = await response.json(); // Ожидание преобразования
return data;
}


Функция с async всегда возвращает промис. await можно использовать только внутри async -функций и оно приостанавливает выполнение до разрешения промиса. Ошибки обрабатываются через try/catch.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Функция var() позволяет использовать CSS-переменные (кастомные свойства), объявленные через --prefix-name.


:root {
--main-color: #3498db; /* Объявление переменной */
}

.element {
color: var(--main-color); /* Использование переменной */
}


Если переменная не определена, можно указать fallback-значение вторым параметром:


.element {
background: var(--unknown-color, #f1c40f); /* Используется #f1c40f, если переменной нет */
}


Переменные вычисляются во время выполнения и поддерживают каскадирование.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
Для отмены локальных изменений в файлах используется git checkout -- <file>, а для сброса проиндексированных изменений — git reset HEAD <file>. Чтобы отменить последний коммит, применяется git reset --soft HEAD~1 с сохранением изменений или git reset --hard HEAD~1 для полного удаления.

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Компонент высшего порядка (HOC) — это функция, которая принимает компонент и возвращает новый улучшенный компонент с дополнительной логикой.


function withLogging(WrappedComponent) {
return function(props) {
console.log('Rendered:', WrappedComponent.name);
return <WrappedComponent {...props} />;
};
}


HOC используются для повторного использования логики (логирование, авторизация, подписки). Это альтернатива хукам, но с менее явным потоком данных.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
ARIA-атрибуты (Accessible Rich Internet Applications) — это набор специальных атрибутов, которые делают веб-контент доступным для вспомогательных технологий, таких как скринридеры.


<button aria-label="Закрыть меню" aria-expanded="false">×</button>


Они описывают роли (role), состояния (aria-disabled, aria-checked) и свойства элементов (aria-labelledby), когда стандартного HTML недостаточно. Например, для кастомных виджетов или динамически изменяемого контента.


<div role="alert" aria-live="assertive">Ошибка загрузки</div>


Использование ARIA обязательно для соответствия стандартам доступности (WCAG).

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4