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
Чему будет равно значение переменной 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
Объясните, что делает приведенный выше код

Приведенный код использует генераторную функцию (function*) и ключевое слово yield для создания итератора, который будет возвращать значения в цикле.

Давайте разберем код по шагам:
1. Сначала определяется генераторная функция fn, которая принимает аргумент num. Генераторная функция отличается от обычной функции тем, что может приостанавливать свое выполнение и возобновлять его позднее.

2. Внутри генераторной функции есть цикл for, который итерирует от 0 до num - 1. В каждой итерации цикла выполняется следующая строка кода.

3. Ключевое слово yield используется для приостановки выполнения функции и возврата значения во время каждой итерации цикла. В данном случае, yield console.log(i) приостанавливает выполнение функции и выводит значение i в консоль. Затем yield возвращает undefined.

4. После выполнения каждой итерации цикла, выполнение генераторной функции приостанавливается, и управление передается обратно во внешний код.

5. Затем создается переменная loop, которая получает результат вызова генераторной функции fn(5). Это создает итератор, связанный с генераторной функцией.

6. Вызов loop.next() запускает выполнение генераторной функции до первого ключевого слова yield. В данном случае, это приведет к выполнению console.log(0) и возврату объекта {value: undefined, done: false}. Значение value равно undefined, потому что console.log() не возвращает никакого значения.

7. Затем вызов loop.next() возобновляет выполнение генераторной функции сразу после последнего ключевого слова yield. В данном случае, это приведет к выполнению console.log(1) и возврату объекта {value: undefined, done: false}.

Таким образом, код последовательно выводит числа от 0 до 1 в консоль.

👉 @frontendInterview
👍17
Что выведется в консоль?
Anonymous Quiz
36%
true true
11%
false true
15%
true false
38%
false false
🔥8👎3👍2
Объяснение:

При использовании флага "global" или "sticky" у RegExp появляется состояние. У него есть lastIndex полученный из предыдущего вызова регулярки. При первом вызове lastIndex'у присваивается 5 (индекс на котором регулярка остановилась) и при следующем он начинает поиск с этого индекса, но т. к. это конец строки - там ничего нет и он выдаёт false (и lastIndex, кстати, обратно устанавливается в 0).

👉 @frontendInterview
👍242👎2🔥1
Можете ли вы описать суть методологии git flow?

Git-flow — наиболее популярная методология разработки проектов с использованием git.

Зачем нам вообще нужны какие-то методологии для работы с git?
Дело в том, что сам git не привязывает нас к какому-либо определённому способу разработки, и каждый разработчик, в теории, может работать с контролем версий так, как он хочет. Чтобы в таких условиях не погрузить наш репозиторий в хаос, нам нужно придумать и донести до всех разработчиков некий единый стандарт для работы с контролем версий в проекте.

Всего в git-flow существует 5 типов веток, каждый из которых несёт определённую функциональную нагрузку.

 develop
Ветка существует на протяжении всего процесса разработки. В данную ветку попадает стабильный код новых фич и багфиксов.

 feature-*
Временные ветки, которые создаются для каждой нетривиальной фичи.
Каждая ветка feature отделяется от develop и мержится обратно в него. После завершения работы над фичей и финального мержа в develop, ветка удаляется.

 master
Ветка, куда поступают самые стабильные изменения, которые идут в релиз. Существует на протяжении всего процесса разработки.
В ветку master мержатся только изменения из веток release и hotfix. На каждый такой мерж создаётся тег с именем версии.

 release-*
Временные ветки, создаваемые для подготовки новой версии к релизу. В эти ветки попадают правки багов и настройки перед релизом.
Ветка выходит из develop и может мержится в develop по ходу подготовки версии. Как только работа над версией заканчивается, происходит финальный мерж ветки в master и develop, после чего ветка удаляется, а коммиту мержа в master присваивается тег новой версии.

 hotfix-*
Временные ветки создаются для правки критических проблем в релизной версии.
Ветка отходит от master и по завершению правок багов мержится обратно. Сама ветка после этого удаляется, а коммиту мержа в master присваивается тег новой версии.

👉 @frontendInterview
👍24
Как вырасти от junior до middle? Middle-специалист отличается не только опытом и уровнем владения технологиями, но и софт скилами. Курс Яндекс Практикума «Мидл фронтенд-разработчик» составлен так, чтобы вы могли освоить и то, и другое а ещё:

• разработать мессенджер, используя только JavaScript, Typescript, CSS и API браузера;
• познакомиться с теорией и отработать её на практике в больших проектах;
• научиться брать ответственность за решения и вкладываться в общий результат;
• самостоятельно декомпозировать задачи и распределять время;
• исследовать смежные сферы программирования, без которых невозможен фронтенд:
• информационную безопасность, прототипирование интерфейсов, командную работу, DevOps, ООП.

На всех этапах вас будут сопровождать опытные разработчики: мы не дадим просесть по учёбе и поможем выкроить время на образование. Вы будете практиковаться на реальных кейсах и положите в портфолио работающие проекты. А карьерные консультации подготовят вас к разговору о повышении или помогут с поиском новой работы.

Пройдите первый бесплатный урок
4
Какое значение примет result?
Anonymous Quiz
16%
ReferenceError
63%
1
20%
0
1%
10
От чего зависит успех собеседования?

Front End Team Lead BCS Денис Воронин отвечает на этот и другие вопросы о прохождении и проведении интервью на своем youtube-канале.

«Собесы. В чем смысл?» — это не рецепт успеха, а рефлексия разработчика с 10-летним опытом о том, что собеседования — это в первую очередь про человеческие отношения.
👍6
Может ли функция возвращать другую функцию в JS?
Anonymous Quiz
97%
Да
3%
Нет
👎14👍11