ReadonlyArray — это специальный тип в TypeScript, представляющий иммутабельный (неизменяемый) массив. В отличие от обычного массива, он запрещает модифицирующие операции:
Доступны только методы для чтения (map, filter, slice). Преобразовать в обычный массив можно через
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
const arr: ReadonlyArray<number> = [1, 2, 3];
arr.push(4); // Ошибка: Property 'push' does not exist
Доступны только методы для чтения (map, filter, slice). Преобразовать в обычный массив можно через
as Array<T> или spread-оператор ([...arr]). Используется для защиты данных от случайных изменений.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍3
Метод split() разбивает строку на массив подстрок по указанному разделителю.
Если разделитель пустой (''), строка разбивается на отдельные символы. Необязательный второй аргумент ограничивает длину результирующего массива.
Если разделитель не найден, возвращается массив с исходной строкой.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
const str = 'a,b,c';
const arr = str.split(','); // ['a', 'b', 'c']
Если разделитель пустой (''), строка разбивается на отдельные символы. Необязательный второй аргумент ограничивает длину результирующего массива.
'hello'.split('', 3); // ['h', 'e', 'l']
Если разделитель не найден, возвращается массив с исходной строкой.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2
JSX транслируется в вызовы React.createElement(). Каждый JSX-элемент преобразуется в функцию, где:
Первый аргумент — тип элемента, второй — пропсы, остальные — дети. Компоненты передаются по имени
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
<div className="test">Hello</div>
// Становится:
React.createElement('div', { className: 'test' }, 'Hello');
Первый аргумент — тип элемента, второй — пропсы, остальные — дети. Компоненты передаются по имени
<Component /> → React.createElement(Component). Трансляция происходит через Babel или TypeScript до запуска кода.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Операция push в Git отправляет локальные коммиты в удалённый репозиторий.
Флаг
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
git push <remote> <branch>
- <remote> — имя удалённого репозитория (обычно origin)
- <branch> — ветка, которую нужно отправить
git push -u origin main
Флаг
-u связывает локальную ветку с удалённой для будущих push/pull без указания параметров. При конфликтах требуется предварительный pull.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Цикл for выполняет блок кода многократно, пока условие истинно. Состоит из трёх частей:
- Инициализация — задаёт начальное значение (например, let i = 0)
- Условие — проверяется перед каждой итерацией (i < 10)
- Шаг — выполняется после каждой итерации (i++)
Используется для перебора массивов, строк или повторения операций. Альтернативы —
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
for (инициализация; условие; шаг) {
// тело цикла
}
- Инициализация — задаёт начальное значение (например, let i = 0)
- Условие — проверяется перед каждой итерацией (i < 10)
- Шаг — выполняется после каждой итерации (i++)
Используется для перебора массивов, строк или повторения операций. Альтернативы —
for...of (для итерируемых объектов) и forEach (для массивов).Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
CSS-спрайты — это метод объединения нескольких изображений в один файл для уменьшения количества HTTP-запросов. Часто применяется для иконок, кнопок и других мелких элементов.
Как использовать:
1. Создать спрайт, разместив все изображения в одном файле (например, sprite.png).
2. Задать элементу фоновое изображение и позиционировать его с помощью background-position:
Преимущества: ускорение загрузки страницы, меньше запросов к серверу. Недостаток — сложность обновления при изменении спрайта.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
Как использовать:
1. Создать спрайт, разместив все изображения в одном файле (например, sprite.png).
2. Задать элементу фоновое изображение и позиционировать его с помощью background-position:
.icon {
background-image: url('sprite.png');
width: 32px;
height: 32px;
}
.icon-home {
background-position: 0 0;
}
.icon-settings {
background-position: -32px 0;
}
Преимущества: ускорение загрузки страницы, меньше запросов к серверу. Недостаток — сложность обновления при изменении спрайта.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
Комментарии в HTML позволяют оставлять пояснения в коде, не влияя на отображение страницы.
Синтаксис:
Комментарии могут быть однострочными или многострочными. Они полезны для заметок, временного отключения кода или разметки структуры.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
Синтаксис:
<!-- Это комментарий, он не отображается в браузере -->
<p>Этот текст будет виден.</p>
Комментарии могут быть однострочными или многострочными. Они полезны для заметок, временного отключения кода или разметки структуры.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
visibility.
.hidden-element {
visibility: hidden;
}
Элемент остается на странице, занимает место, но становится невидимым. В отличие от
display: none, не удаляется из потока документа. Альтернативный вариант — прозрачность:
.transparent-element {
opacity: 0;
}
Сохраняет кликабельность и взаимодействие, если не отключено pointer-events.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3💯3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
git reflog для поиска последних действий и git checkout или git reset для возврата файлов.
git reflog # Поиск последнего коммита перед удалением
git checkout HEAD@{n} -- path/to/file # Восстановление файла из истории
Если файлы были проиндексированы, но не закоммичены:
git fsck --lost-found # Поиск dangling-объектов
Для восстановления после
git rm используйте git reset HEAD file перед git checkout -- file.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Свойст
При таком стиле переход по ссылке с якорем (например, <a href="#section">) будет происходить с плавной прокруткой до целевого элемента. Также это работает с методами JavaScript, т
Значение по умолчанию —
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
во scroll-behavior в CSS позволяет управлять поведением прокрутки на странице. При установке значения smooth прокрутка становится плавной, а не мгновенной. Это особенно полезно для навигации по странице с помощью якорей или JavaScript.
html {
scroll-behavior: smooth;
}
При таком стиле переход по ссылке с якорем (например, <a href="#section">) будет происходить с плавной прокруткой до целевого элемента. Также это работает с методами JavaScript, т
акими как scrollTo или scrollIntoView.
document.getElementById('section').scrollIntoView({ behavior: 'smooth' });
Значение по умолчанию —
auto, при котором прокрутка происходит мгновенно. Свойство поддерживается в современных браузерах, но для старых версий может потребоваться полифил.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Методы Vue — это функции, которые определяются в объекте
В шаблоне метод вызывается через
Методы реагируют на изменения данных и обновляют DOM через реактивную систему Vue. Они не кэшируются, в отличие от вычисляемых свойств, и выполняются каждый раз при вызове.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
methods компонента. Они используются для обработки событий, выполнения логики или изменения состояния компонента. Методы можно вызывать из шаблона через директивы (например, v-on) или из других методов.
export default {
data() {
return {
count: 0
};
},
methods: {
increment() {
this.count++;
}
}
};
В шаблоне метод вызывается через
v-on:
<button @click="increment">Увеличить счетчик</button>
Методы реагируют на изменения данных и обновляют DOM через реактивную систему Vue. Они не кэшируются, в отличие от вычисляемых свойств, и выполняются каждый раз при вызове.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Тернарный оператор позволяет компактно записывать условные выражения. Синтаксис:
В этом примере, если
Тернарный оператор удобен для простых условий, но для сложной логики лучше использовать
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
условие ? значение_если_истина : значение_если_ложь. const isLoggedIn = true;
const message = isLoggedIn ? 'Добро пожаловать' : 'Пожалуйста, войдите';
В этом примере, если
isLoggedIn равно true, переменной message присваивается 'Добро пожаловать', иначе — 'Пожалуйста, войдите'.Тернарный оператор удобен для простых условий, но для сложной логики лучше использовать
if-else, чтобы сохранить читаемость кода.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Селектор потомков в CSS выбирает элементы, которые находятся внутри другого элемента, независимо от уровня вложенности. Синтаксис:
В этом примере все элементы
Селектор потомков применяется ко всем подходящим элементам, независимо от их глубины в структуре DOM. Это отличает его от дочернего селектора (>), который выбирает только прямых потомков.
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
родитель потомок.
div p {
color: blue;
}
В этом примере все элементы
<p>, находящиеся внутри <div>, будут стилизованы синим цветом, даже если они вложены в другие элементы.Селектор потомков применяется ко всем подходящим элементам, независимо от их глубины в структуре DOM. Это отличает его от дочернего селектора (>), который выбирает только прямых потомков.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Для обработки событий формы в React используется состояние (state) и обработчики событий. События, такие как
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Frontend собеседования
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().Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
<div id="host"></div>
<noscript>
const host = document.getElementById('host');
const shadowRoot = host.attachShadow({ mode: 'open' });
shadowRoot.innerHTML = `<p>Этот текст изолирован в Shadow DOM</p>`;
</noscript>
В этом примере содержимое внутри
shadowRoot изолировано от глобального DOM. Shadow DOM используется в веб-компонентах для создания независимых и переиспользуемых элементов.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4