Продолжаю тему актуальных для текущего года вопросов для frontend-разработчика. На этот раз я хочу привести список вопросов на позицию middle+/senior в одном известном банке ✅🤫
Вопросы по Javascript:
- Методы Promise (Promise.all, Promise.allSettled, Promise.race)
- Какие состояния имеет Promise и что они обозначают (речь о pending, fulfilled, rejected)?
- Задача. Дан массив [1,1,1,2,4,5]. Нужно вернуть true в случае если в нём есть хотя бы один повторяющийся элемент.
- Рассказать о Map и Set.
- Что такое O-большое?
- Что выведет console.log(1==‘1’) и console.log(1===‘1’) и почему.
- Что такое стрелочная функция и чем она отличается от обычной?
- Что такое замыкание?
- В каком порядке выведется console.log()
1234567891011121314setTimeout(function timeout() {console.log('Таймаут');}, 0);let p = new Promise(function(resolve, reject) {console.log('Создание промиса');resolve();});p.then(function(){console.log('Обработка промиса');});console.log('Конец скрипта');
- Какие типы данных в JS существуют?
- Рассказать про call, apply и bind.
- Как можно скопировать объект (вопрос про Object.assign(), перебор в цикле, Spread оператор, JSON.stringify -> JSON.parse).
- Как копируется объект (по ссылке или по значению)?
- Что будет если объекту, объявленному через const, изменить значения полей?
- Как можно сделать объект иммутабельным? Вопрос об Object.freeze;
- В чем отличие примитивов от объекта? Ответ: примитивы копируются по значению, объект по ссылке;
- Прототипное наследование;
- Что такое виртуальное дерево (как концепция вне контекста React)?
- Рассказать о процессе рендеринга HTML-страницы;
- Какие этапы из рендеринга будут задействованы при перерисовке (вопрос про Reflow)?
- Что такое requestAnimationFrame?
- Что такое Event Loop?
- Что находится “под капотом” GraphQl?
- Разница между a++ и ++a?
- Что такое чистая функция?
- Перечислить, что является false в JS? Вопрос о 0, null, false и т.д.
Вопросы по Typescript:
- Что такое Partial<Type>, Required<Type>, Readonly<Type>, Record<Keys, Type>, Pick<Type, Keys>, Omit<Type, Keys>?
- Что данная запись обозначает:
12345678910111213// Overload signaturesfunction greet(person: string): string;function greet(persons: string[]): string[];// Implementation signaturefunction greet(person: unknown): unknown {if (typeof person === 'string') {return `Hello, ${person}!`;} else if (Array.isArray(person)) {return person.map(name => `Hello, ${name}!`);}throw new Error('Unable to greet');}
Вопрос про перегрузку функций в TS
Вопросы по React:
- Какие основные хуки существуют? Рассказать про каждый из них.
- Рассказать, как можно реализовать этапы жизненного цикла компонента через useEffect.
Был еще ряд вопросов в контексте практического примера с использованием локального стейта, но я, к сожалению, уже не вспомню саму реализацию.