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

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

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

Канал в реестре РКН:
https://rknn.link/su
Download Telegram
Что больше: четные или нечетные?

Вам дана строка, состоящая из цифр. Определите, что больше: Сумма четных чисел или сумма нечетных.

Исходя из результата верните строку:
"Even is greater than Odd" если сумма четных больше
"Odd is greater than Even" если сумма нечетных больше
"Even and Odd are the same" если суммы равны
Что нужно подставить вместо ... чтобы выполнилась функция handleClick при нажатии на кнопку?
Anonymous Quiz
4%
onSubmit
92%
onClick
3%
onChange
1%
onInteraction
Что такое "бурение пропов" (prop drilling) и как его можно избежать в React?

В React пропы передаются в одном направлении, сверху вниз, от родительского компонента к дочернему, и последовательно. При наличии незначительного количества пропов или потомков - это не является проблемой. Однако, при росте приложения, для того, чтобы передать пропы с верхнего уровня приложения компонентам, находящимся на 3 или 4 уровне вложенности, нам приходится передавать одни и те же пропы на каждом уровне дерева компонентов. Это называется prop-drilling.

Context API
Контекст решает некоторые проблемы, связанные с "бурением". Он позволяет компонентам получать данные на любом уровне без их передачи в виде пропов. Передаваемыми данными может быть что угодно: состояние, функция, объект и т.д. Эти данные доступны любым вложенным компонентам в пределах области видимости контекста.

Пример
import React from "react"
import ReactDOM from "react-dom"

// создаем контекст
const NumberContext = React.createContext()
// он возвращает объект с двумя значениями
// { Provider, Consumer }

function App() {
// используем провайдер для предоставления потомкам
// доступа к данным
return (
<NumberContext.Provider value={10}>
<div>
<Display />
</div>
</NumberContext.Provider>
)
}

function Display() {
const value = useContext(NumberContext)
return <div>Ответ: {value}.</div>
}
Как устроиться FE разработчиком без опыта?

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

Профессия Frontend-разработчик PRO - самый быстрый способ начать зарабатывать и получать опыт

Программа:

📌 Веб-вёрстка
📌 Javanoscript
📌 React.js или Vue.js на выбор

Дополнительно:

📌 Система контроля версий Git
📌 Английский для IT-специалистов
📌 Photoshop
📌 Figma
и другие важные знания для того чтобы начать

5 дипломных проектов для вашего портфолио:

Лендинг
Сайт
Интернет-магазин
Новостная лента
Сервис заметок

💰 Гарантия трудоустройства

Первые 6 месяцев - бесплатно
Для чего предназначены методы setTimeout и setInterval?

Мы можем вызвать функцию не в данный момент, а позже, через заданный интервал времени. Это называется «планирование вызова».

Для этого существуют два метода:
setTimeout - позволяет вызвать функцию один раз через определённый интервал времени.
setInterval - позволяет вызывать функцию регулярно, повторяя вызов через определённый интервал времени.

Например, данный код вызывает sayHi() спустя одну секунду:
 function sayHi() {
alert('Привет');
}

setTimeout(sayHi, 1000);

Следующий пример выводит сообщение каждые 2 секунды. Через 5 секунд вывод прекращается:
 // повторить с интервалом 2 секунды
let timerId = setInterval(() => alert('tick'), 2000);

// остановить вывод через 5 секунд
setTimeout(() => { clearInterval(timerId); alert('stop'); }, 5000);
Верно ли следующее утверждение?: Браузер может прочитать JSX синтаксис.
Anonymous Quiz
23%
Да
77%
Нет
Как реализовать однократное выполнение компонентом некоторой операции при первоначальном рендеринге в React?

Для этого можно использовать метод жизненного цикла componentDidMount() в классовом компоненте:
 class Homepage extends React.Component {
componentDidMount() {
trackPageView('Homepage')
}
render() {
return <div>Домашняя страница</div>
}
}
Любые операции, определенные в componentDidMount(), будут выполнены только один раз при монтировании компонента.

Аналогичный функционал можно реализовать с помощью хука useEffect() с пустым массивом зависимостей.
const Homepage = () => {
useEffect(() => {
trackPageView('Homepage')
}, [])

return <div>Домашняя страница</div>
}
Можно ли создать инстанс абстрактного класса в TypeScript?
Anonymous Quiz
58%
Да
42%
Нет
JavaScript на примерах. Практика, практика и только практика

Данная книга - это прекрасное учебное пособие для изучения языка программирования JavaScript на примерах. Изложение ведется последовательно: от написания первой программы, до создания полноценных проектов: интерактивных элементов (типа слайдера, диалоговых окон) интернет-магазина, лендинговой страницы и проч. По ходу даются все необходимые пояснения и комментарии.
Вклад

У вас есть определенная сумма денег a0 > 0. Вы вкладываете их под годовой процент p. И вы хотите в итоге получить сумму денег = a >= a0.

Напишите функцию, datenbdays, которая принимает параметры a0, a, p и возвращает дату, к которой накопится целевая сумма.

Примеры:
date_nb_days(100, 101, 0.98) --> "2017-01-01" (366 days)
date_nb_days(100, 150, 2.00) --> "2035-12-26" (7299 days)
JavaScript Cookbook

Раньше JavaScript был вполне себе легко изучаемым языком программирования, требующим только знаний по работе в браузере. Теперь, когда JavaScript работает и на сервере, и на мобильных устройствах, начинающим программистам становится сложнее выбрать, какое из направлений подойдёт ему лучше всего. В этом руководстве автор раскроет возможности JavaScript в любой из областей, приведёт примеры его работы и даст советы.
Как автоматизированные инструменты помогают улучшить доступность приложения?

Существует две категории инструментов, которые могут быть использованы для определения проблем с доступностью приложения:

Инструменты статического анализа
"Линтеры", вроде ESLint, могут использоваться совместно со специальными плагинами, например, eslint-plugin-jsx-a11y для анализа React-проектов на уровне компонентов. Статические анализаторы выполняются очень быстро, поэтому "цена" их использования невелика, а преимущества очевидны.

Инструменты браузера
Браузерные инструменты анализа доступности контента, такие как aXe и Google Lighthouse, осуществляют автоматическую проверку на уровне всего приложения. Они могут обнаружить более "реалистичные" проблемы, поскольку браузеры имитирую поведение пользователя, взаимодействующего со страницей.
Какая из перечисленных команд позволяет переключиться с одной ветки на другую в git?
Anonymous Quiz
10%
git diff
85%
git checkout
2%
git push
3%
git pull
This media is not supported in your browser
VIEW IN TELEGRAM
Как работать с JS / CSS / Node.js / SQL в 2021 году

Языки эволюционируют. Поиск и изучение новых фишек отнимает у опытных web-разработчиков до 10 часов в неделю.

Вы же хотите дорасти до тимлида? Значит, нужно повышать квалификацию.

С подпиской на @sWebDev достаточно 5 минут в день, чтобы узнавать новые трюки JS / CSS / Node.js / SQL.

@sWebDev — это быстрые тесты, примеры кода и актуальные решения, которые сделают вас самым подготовленным сотрудником компании.
Что такое хуки в React? В чем заключаются преимущества их использования?

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

Правила использования хуков
1. нельзя использовать внутри циклов, условий или вложенных функций
2. можно использовать либо внутри компонентов, либо внутри других хуков (в том числе, пользовательских, "кастомных", custom)

Основные хуки
useState()
useEffect()
useContext()

Дополнительные (продвинутые)
useReducer()
useCallback()
useMemo()
useRef()
useImperativeHandle()
useLayoutEffect()
useDebugValue()

Преимущества хуков
1. С ними легче работать, их легче тестировать (как отдельные функции компонентов), они делают код чище, улучшают его читаемость - сложная логика может быть вынесена в "кастомный" хук
2. Позволяют разделять сложную логику на маленькие функции, используемые внутри компонентов
3. Повышают уровень "переиспользуемости" кода
4. Позволяют распределять логику между компонентами через пользовательские хуки
Являются более податливыми к перемещениям в дереве компонентов
Только уникальные

Создайте функцию, которая будет определять, содержит ли строка только уникальные символы.
Строка может содержать любой из 128 ASCII символов. Символы чувствительны к регистру.

Примеры:
 hasUniqueChars("  nAa")
false Потому что присутствует два пробела

 hasUniqueChars("abcdef")
true

 hasUniqueChars("aA")
true - чувствительна к регистру

 hasUniqueChars("++-")
false Пристутствует два +