Frontend Interview - собеседования по Javascript / Html / Css
11.5K subscribers
2.1K photos
118 videos
319 files
530 links
Канал для подготовки к собеседованиям по фронтенду

Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront

Купить рекламу: https://telega.in/c/frontendinterview

Канал в реестре РКН:
https://rknn.link/su
Download Telegram
Каким будет значение определённого свойства объекта?

Это часто встречающаяся группа вопросов на собеседовании. Отличить её можно по таким признакам: вам предлагают два и более JS-объекта, в которых программно меняют свойства по ключам. Спрашивают, что в результате попадёт в консоль при вызове какого-то определённого ключа.

Так проверяют ваше знание того, что значения объектов передаются по ссылке и что ключи в объекте — это способ построить связь с конкретными данными.

Обычно перед вами будет пример, вроде такого:
 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.

👉 @frontendInterview
👍191
React.js Design Patterns: Learn how to build scalable React apps with ease (2023)

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

👉 @frontendInterview
Javascript filter

Вы разрабатываете сайт и вдруг обнаруживаете, что некоторые пользователи не могут залогиниться. У всех этих пользователей есть символ "_" в логине. Поэтому вам необходимо написать функцию, которая примет на вход массив из данных пользователей и вернет только те данные, логин в которых имеет символ "_".

Пример:
Исходные данные:
[ [ "foo", "[email protected]" ], [ "bar_", "[email protected]" ] ]

Результат:
[ [ "bar_", "[email protected]" ] ]

👉 @frontendInterview
🤔4👍3
Как бы вы реализовали метод String.prototype.indexOf()?

Для начала вспомним, что принимает и возвращает эта функция:
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
🔥6
Frontend meetup (Online)

1. Построение микрофронтендной архитектуры. Первый взгляд, боли и решения —Никита Морозов, АО "МТТ"
В докладе будет представлен путь построения микрофронтендной архитектуры на примере проекта МТС «Exolve», а также поэтапный рассказ об эволюции проекта от webpack до vite, от SingleSPA до собственного решения

2. Бьем монолит. Основные практики — Гузенко Александр IT ONE
Рассмотрим основные подходы к разбиению монолитных фронтедов.

3. Безопасный TypeScript. Защищаемся от any в кодовой базе —Максим Земсков, Яндекс
Как получить максимум безопастности при использования TypeScript. Какие настройки стоит использовать и как улучшить типизацию стандартных функций.

4. Beyond Frontend — Алексей Тюльдюков, VK
Как T-shape подход может помочь фронтенд разработчику стать техническим менеджером

🗓 12 июля, начало в 19:00 мск, Среда

🚀 Телеграмм канал с анонсами митапов

Регистрация на мероприятие
🔥3👍1
Каким будет значение выражения "искать такси".split('').reverse().join('')?
Anonymous Quiz
18%
"искать такси"
70%
"искат ьтакси"
6%
"искат иксат"
5%
"иксат такси"
😁23👍12👎51
Что значит текст max call stack size exceeded в консоли?

Текст "max call stack size exceeded" в консоли означает, что было достигнуто максимальное количество вызовов функции в стеке вызовов JavaScript. Стек вызовов - это механизм, который используется для отслеживания выполнения функций. Каждый раз, когда функция вызывается, она помещается в стек вызовов. Когда функция заканчивает свое выполнение, она удаляется из стека вызовов.

Когда функция вызывает саму себя рекурсивно без остановки, то каждый новый вызов функции добавляется в стек вызовов, и если количество вызовов становится слишком большим, то возникает ошибка "max call stack size exceeded". Это происходит потому, что стек вызовов имеет ограниченный размер и не может бесконечно увеличиваться.

Чтобы решить эту проблему, нужно переписать код таким образом, чтобы рекурсивные вызовы функции прекращались на определенном условии. Например, можно добавить условие, которое проверяет, достигнуто ли максимальное количество вызовов функции, и если да, то прекратить рекурсивные вызовы. Также можно использовать циклы вместо рекурсии, чтобы избежать проблемы с переполнением стека вызовов.

👉 @frontendInterview
6👍1
Какая единица измерения размера шрифта в CSS является абсолютной и не зависит от размера шрифта родительского элемента и устройства, на котором отображается страница?
Anonymous Quiz
25%
em
51%
pt
24%
vh
👍7👎4
Чему будет равно значение переменной variable: let variable = 1 + '15'?

Значение переменной variable будет равно '115'. В переменной будет храниться строка, а не число.
let variable = 1 + '15'
console.log(variable) // '115'

Оператор + в JavaScript используется для сложения чисел или конкатенации строк. В результате применения этого оператора к двум значениям получится строка или число. Если один из операндов будет строковым типом, то оба операнда сначала будут приведены к строке, а результатом станет их конкатенация.

👉 @frontendInterview
👍12👎2
Essential TypeScript 4: From Beginner to Pro 2nd Edition(2021)

Узнайте об основных и дополнительных возможностях TypeScript, популярного супернабора языка JavaScript, в котором добавлена поддержка статической типизации. TypeScript сочетает в себе возможности типизации C# или Java с гибкостью JavaScript, уменьшая количество ошибок типизации и обеспечивая более легкий путь к разработке JavaScript.

👉 @frontendInterview
👍2👎1
Count the divisible numbers

Создайте функцию, которая принимает 3 числа - x, y, k. И возвращает количество целых чисел в промежутке от x до y, которые делятся на k.

Пример:
x = 6, y = 11, k = 2
Функция должна вернуть 3, так как в промежутке от 6 до 11 три числа делятся на 2 (6, 8, 10).

👉 @frontendInterview
Как фронтендеру расти дальше?

Для роста нужен опыт с проектами посложнее, но бывает, что таких проектов на текущей работе нет и не предвидится. Можно залететь в оперсорс, но я не знаю о крупных проектах, куда можно легко залететь и получить поддержку наставника.

Как вариант, пройти обучение с акцентом на практику, которое было создано руками тимлидов с опытом работы в Яндексе, Вконтакте, TON и Frogly.

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

За 5 месяцев обучения вы научитесь:
- находить и лечить сложные ошибки производительности
- готовить Service Worker и PWA, чтобы сайт работал в офлайне
- делать сайт доступным для людей с ограниченными способностями
- DevOps штукам для фронтендера
- создавать серверную часть веб-приложения самостоятельно с нуля

Приходите прокачивать скиллы
А по промокоду FRONTINT22 для вас скидка 7% на ближайший поток.
👎21