Frontend
class Foo { bar = 1; bla = () => console.log(this.bar); baz = function () {console.log(this.bar);}; } new Foo().bla(); new Foo().baz(); Скажи коротко так: `this` — это не область видимости, а контекст вызова функции. Он определяется не там, где функция объявлена, а там, как она вызвана. Можно добавить 3-4 правила: - Обычный вызов функции — this обычно undefined в strict mode. - Метод объекта — this указывает на объект слева от точки. - `call / apply / bind` — позволяют явно задать this. - Стрелочные функции — своего this не имеют, берут его из внешнего контекста.
Был ли опыт использования Zod или аналогов для валидации данных?
Если получите несколько офферов одновременно, как будете выбирать? Какую роль играют деньги при выборе?
function memoize(fn, options = {}) { const { maxSize = 1000, keyOf = (...a) => JSON.stringify(a), lruTouch = true, } = options; let hits = 0; let misses = 0; const cache = new Map(); const getKey = (...args) => keyOf(...args); const wrapped = (...args) => { // пишем код тут return fn(...args); }; // и тут return wrapped; }
Каковы ваши зарплатные ожидания?
Приходилось ли использовать дискриминантные юнионы и type guards? Какие встроенные type guards знаешь?
Что вывело вас на рынок и что сподвигло рассматривать новые предложения?
У вас на руках два оффера с одинаковыми условиями и зарплатой, один предоставляет удалёнку. По каким критериям вы бы выбирали между этими офферами помимо удалёнки?
Live Coding: Реализуй базовый механизм EventEmitter с методами subscribe, publish и механизмом отписки
Какие ограничения есть по объёму памяти в IndexedDB и от чего они зависят?
Практическое задание: доработать компонент счётчика на React так, чтобы при нажатии на кнопку «Увеличить» значение счётчика увеличивалось на 1 и в историю добавлялась запись об увеличении с новым значением; при нажатии «Уменьшить» — аналогично; при нажатии «Сбросить» — история очищалась.
Расскажите подробнее про офлайн-функциональность: как работает сохранение данных в IndexedDB при потере интернета?
Каковы твои зарплатные ожидания?
Виртуальный скролл вы реализовывали самостоятельно или использовали библиотеку?
Если элементу задан position:absolute, относительно какого элемента он будет позиционироваться? Что если внутри абсолютного элемента ещё один абсолютный?
Какими способами приходилось организовывать CSS на проектах? Что использовал: препроцессор, styled-components, модули?
Что произойдёт, если вместо класса использовать обычный объект с теми же методами (без strict mode)?
Как вы решали задачу совместного существования нового стека и Legacy-кода в одном проекте? Рассматривали ли микрофронтенды или веб-компоненты?
Были ли на работе люди, с которыми трудно было общаться? Принимались ли какие-то меры?
Не сложно было распределять время на два параллельных проекта одной командой?