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

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

JS собеседования - @frontview_js
Frontend работа - @frontview_vacancies
Все IT вакансии - @frontview_all_vacancies
Download Telegram
Приведение типов — это процесс преобразования значения одного типа в другой. Существует два вида приведения: неявное и явное. Неявное приведение происходит автоматически, когда компилятор преобразует типы без явного указания. Явное приведение требует явного указания программистом.


const value: any = "123";
const num: number = Number(value); // Явное приведение строки к числу

const str: string = num.toString(); // Явное приведение числа к строке


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

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

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
👉 Передача данных между компонентами осуществляется с помощью props и событий. Props позволяют передавать данные от родительского компонента к дочернему. Для передачи данных от дочернего компонента к родительскому используются события.


// Родительский компонент
<ChildComponent :message="parentMessage" @update="handleUpdate" />

// Дочерний компонент
props: ['message'],
methods: {
sendUpdate() {
this.$emit('update', 'новое сообщение'); // Отправка события с данными
}
}


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

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
BEM-методология (Block, Element, Modifier) — это подход к написанию CSS, который помогает создавать масштабируемые и поддерживаемые кодовые базы. Она структурирует CSS-классы, разделяя интерфейс на независимые блоки, элементы внутри блоков и модификаторы для изменения стилей, что упрощает управление стилями и предотвращает конфликты.

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
Тег <img> используется для вставки изображений на веб-страницы. Основные атрибуты включают src для указания источника изображения, alt для предоставления текстового описания на случай, если изображение не загрузится, и width и height для задания размеров изображения.

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
Для проверки, является ли значение конечным числом, используется функция isFinite(). Она возвращает true, если переданное значение является конечным числом, и false в противном случае.


isFinite(25); // true, так как 25 — конечное число
isFinite(Infinity); // false, так как Infinity — не конечное число
isFinite("123"); // true, строка "123" преобразуется в число 123
isFinite("abc"); // false, строка "abc" не может быть преобразована в число


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

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

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

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
📝 Списки создаются с помощью метода map(), который преобразует массив данных в массив JSX-элементов. Ключи необходимы для идентификации элементов списка и улучшения производительности при обновлениях.


const items = ['Apple', 'Banana', 'Cherry'];

const listItems = items.map((item, index) => (
<li key={index}>{item}</li> // Использование ключей для каждого элемента
));

return <ul>{listItems}</ul>;


Ключи должны быть уникальными среди соседних элементов, что помогает React эффективно обновлять и рендерить компоненты.

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

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
Метатег viewport управляет отображением веб-страницы на мобильных устройствах, определяя размер и масштаб области просмотра. Он помогает адаптировать контент под разные экраны, улучшая пользовательский опыт.


<meta name="viewport" content="width=device-width, initial-scale=1.0">


Атрибут width=device-width устанавливает ширину страницы равной ширине экрана устройства, а initial-scale=1.0 задает начальный масштаб, обеспечивая корректное отображение.

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

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1121🔥1
Перегрузка функций в TypeScript позволяет объявлять несколько сигнатур для одной функции, обеспечивая различные варианты вызова с разными типами и количеством аргументов. Это улучшает гибкость и читаемость кода, позволяя одной функции обрабатывать различные сценарии использования.

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
👉 Директива v-for используется для рендеринга списка элементов на основе данных массива. Она перебирает элементы массива и создает экземпляр шаблона для каждого элемента.


<ul>
<li v-for="(item, index) in items" :key="index">
{{ item }}
</li>
</ul>


Атрибут :key помогает Vue отслеживать изменения в списке, обеспечивая эффективное обновление DOM.

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

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥7
➡️ Метод Date.now() возвращает количество миллисекунд, прошедших с 1 января 1970 года 00:00:00 по UTC. Это удобный способ получить текущее время в виде числового значения, что полезно для измерения интервалов или работы с временными метками.


const timestamp = Date.now();
// timestamp содержит количество миллисекунд с начала эпохи Unix


Метод не создает объект Date, что делает его более производительным по сравнению с использованием new Date().getTime(). Часто применяется для замера времени выполнения кода или генерации уникальных идентификаторов.

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

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74
Классы и идентификаторы используются для стилизации элементов в CSS, но имеют разные цели. Классы применяются для группировки нескольких элементов с общими стилями, а идентификаторы — для уникального выделения одного элемента на странице.

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6💯1
Команда git merge --abort отменяет процесс слияния и вернет рабочую директорию в состояние, которое было до начала слияния. Это полезно, если в процессе возникли конфликты или слияние нужно прервать по другим причинам.


git merge --abort


Команда работает только в случае, если слияние не было завершено. После выполнения репозиторий возвращается к состоянию, в котором он находился до вызова git merge.

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

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍65
📝 Условный рендеринг в React позволяет отображать разные компоненты или элементы в зависимости от условий. Это можно реализовать несколькими способами.

1. Использование тернарного оператора:

const Component = ({ isLoggedIn }) => (
isLoggedIn ? <WelcomeMessage /> : <LoginButton />
);


Если isLoggedIn истинно, отобразится WelcomeMessage, иначе — LoginButton.

2. Использование логического оператора &&:

const Component = ({ hasItems }) => (
hasItems && <ItemList />
);


Если hasItems истинно, отобразится ItemList, иначе ничего не будет показано.

3. Использование условных операторов в JSX:

const Component = ({ isLoading }) => {
if (isLoading) {
return <Spinner />;
}
return <Content />;
};


В зависимости от значения isLoading возвращается либо Spinner, либо Content.

Эти подходы позволяют гибко управлять отображением компонентов в зависимости от состояния приложения.

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

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
Атрибут id уникально идентифицирует один элемент на странице, а class может применяться к нескольким элементам для группировки и стилизации. id используется для точного обращения к элементу, а class — для применения общих стилей или поведения к нескольким элементам.

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
➡️ Дженерики (generics) позволяют создавать универсальные компоненты, функции или типы, которые могут работать с разными типами данных, сохраняя типобезопасность. Они указываются в угловых скобках <T> и заменяются конкретным типом при использовании.


function identity<T>(arg: T): T {
return arg;
}


Функция identity принимает аргумент типа T и возвращает значение того же типа. Это позволяет использовать её с любым типом данных.


const result = identity<string>("Hello");


Здесь T заменяется на string, и функция работает с этим типом.

Дженерики полезны для создания переиспользуемого кода, который остаётся типобезопасным и гибким.

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

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
🟥 Методы в Vue — это функции, которые определяются в объекте methods компонента. Они используются для обработки событий, выполнения логики или изменения состояния компонента. Методы можно вызывать из шаблона через директивы (например, v-on) или из других методов.


export default {
data() {
return {
count: 0
};
},
methods: {
increment() {
this.count++;
}
}
};


В шаблоне метод вызывается через v-on:


<button @click="increment">Увеличить счетчик</button>


Методы реагируют на изменения данных и обновляют DOM через реактивную систему Vue. Они не кэшируются, в отличие от вычисляемых свойств, и выполняются каждый раз при вызове.

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

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52
Тернарный оператор позволяет компактно записывать условные выражения. Синтаксис: условие ? значение_если_истина : значение_если_ложь.


const isLoggedIn = true;
const message = isLoggedIn ? 'Добро пожаловать' : 'Пожалуйста, войдите';


В этом примере, если isLoggedIn равно true, переменной message присваивается 'Добро пожаловать', иначе — 'Пожалуйста, войдите'.

Тернарный оператор удобен для простых условий, но для сложной логики лучше использовать if-else, чтобы сохранить читаемость кода.

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

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
▶️Селектор потомков в CSS выбирает элементы, которые находятся внутри другого элемента, независимо от уровня вложенности. Синтаксис: родитель потомок.


div p {
color: blue;
}


В этом примере все элементы <p>, находящиеся внутри <div>, будут стилизованы синим цветом, даже если они вложены в другие элементы.

Селектор потомков применяется ко всем подходящим элементам, независимо от их глубины в структуре DOM. Это отличает его от дочернего селектора (>), который выбирает только прямых потомков.

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

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102
Сообщение к коммиту помогает понять, какие изменения были внесены и зачем. Это упрощает навигацию по истории проекта, поиск ошибок и совместную работу.

✈️ Frontend собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
▶️Для обработки событий формы в React используется состояние (state) и обработчики событий. События, такие как onChange и onSubmit, позволяют отслеживать ввод данных и отправку формы.


function Form() {
const [inputValue, setInputValue] = useState('');

const handleChange = (e) => {
setInputValue(e.target.value);
};

const handleSubmit = (e) => {
e.preventDefault();
console.log('Отправлено:', inputValue);
};

return (
<form onSubmit={handleSubmit}>
<input type="text" value={inputValue} onChange={handleChange} />
<button type="submit">Отправить</button>
</form>
);
}


onChange обновляет состояние при каждом изменении ввода, а onSubmit обрабатывает отправку формы, предотвращая стандартное поведение браузера с помощью e.preventDefault().

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

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