- Расскажи про объект Promise? [https://learn.javascript.ru/promise-basics]
//Что выведет код ниже?
let promise = new Promise(function(resolve, reject) {
resolve(1);
setTimeout(() => resolve(2), 1000);
});
promise.then(alert);
[https://gist.github.com/ivan-hilckov/5fa19f39fab7672f6b7e5a12fd1b180c]
//Встроенная функция setTimeout использует колбэк-функции. Создайте альтернативу, использующую промисы.
// Функция delay(ms) должна возвращать промис, который перейдёт в состояние «выполнен» через ms миллисекунд, так чтобы мы могли добавить к нему .then:
function delay(ms) {
// ваш код
}
delay(3000).then(() => alert('выполнилось через 3 секунды'));
- Расскажи зачем нужен async/await. Какие проблемы он решает? Как с ним работать? [https://learn.javascript.ru/async-await]
// Перепишите один из примеров раздела Цепочка промисов, используя async/await вместо .then/catch:
function loadJson(url) {
return fetch(url)
.then(response => {
if (response.status == 200) {
return response.json();
} else {
throw new Error(response.status);
}
})
}
loadJson('no-such-user.json') // (3)
.catch(alert); // Error: 404
- Расскажи что ты знаешь про Map и Set. Какие проблемы решает? Чем Map отличается от Object? Чем Set отличается от Array? Как упорядоченны элементы в Map и Set [https://learn.javascript.ru/map-set]
// Создайте функцию unique(arr), которая вернёт массив уникальных, не повторяющихся значений массива arr.
function unique(arr) {
/* ваш код */
}
let values = ["Hare", "Krishna", "Hare", "Krishna",
"Krishna", "Krishna", "Hare", "Hare", ":-O"
];
alert( unique(values) ); // Hare,Krishna,:-O
-
Расскажи что ты знаешь про WeakMap и WeakSet. Какие проблемы решает? Чем отличается от Map и Set? [https://learn.javascript.ru/weakmap-weakset]
-
Расскажи что ты знаешь про Symbol.iterator? [https://learn.javascript.ru/iterable]
-
Расскажи что ты знаешь о генератора в js? Как работает конструкция yield? Зачем это нужно и какую боль решает? [https://learn.javascript.ru/generators]
Псевдослучайный генератор
Есть много областей, где нам нужны случайные данные.
Одной из них является тестирование. Нам могут понадобиться случайные данные: текст, числа и т.д., чтобы хорошо всё проверить.
В JavaScript мы можем использовать Math.random(). Но если что-то пойдёт не так, то нам нужно будет перезапустить тест, используя те же самые данные.
Для этого используются так называемые «сеяные псевдослучайные генераторы». Они получают «зерно», как первое значение, и затем генерируют следующее, используя формулу. Так что одно и то же зерно даёт одинаковую последовательность, и, следовательно, весь поток легко воспроизводим. Нам нужно только запомнить зерно, чтобы воспроизвести последовательность.
Пример такой формулы, которая генерирует более-менее равномерно распределённые значения:
next = previous * 16807 % 2147483647
Если мы используем 1 как зерно, то значения будут:
16807
282475249
1622650073
…и так далее…
Задачей является создать функцию-генератор pseudoRandom(seed), которая получает seed и создаёт генератор с указанной формулой.
Пример использования:
let generator = pseudoRandom(1);
alert(generator.next().value); // 16807
alert(generator.next().value); // 282475249
alert(generator.next().value); // 1622650073
-
Расскажите о базовом принципе работы React Hooks? [https://ru.reactjs.org/docs/hooks-intro.html]
-
Расскажите о том как оптимизировать React-приложение. Как измерить производительность? Как инструменты можно использовать для debug? [https://ru.reactjs.org/docs/optimizing-performance.html]
-
Что ты знаешь о Error Boundary? Зачем это нужно? Какие проблемы это решает? [https://ru.reactjs.org/docs/error-boundaries.html]
-
Что такое HOC? Зачем это нужно? Какие проблемы это решает? [https://ru.reactjs.org/docs/higher-order-components.html]
-
Тебе нужно провязать компонент на js (например https://harvesthq.github.io/chosen/) с твоим приложением на react. В чем сложность этой задачи? [https://ru.reactjs.org/docs/integrating-with-other-libraries.html]
-
Что на самом деле представляет из себя JSX? Как примерно бы выглядел код компонента без использования JSX? [https://ru.reactjs.org/docs/react-without-jsx.html]
// код с JSX
class Hello extends React.Component {
render() {
return <div>Привет, {this.props.toWhat}</div>;
}
}
ReactDOM.render(
<Hello toWhat="мир" />,
document.getElementById('root')
);
// код с без JSX
class Hello extends React.Component {
render() {
return React.createElement('div', null, `Привет, ${this.props.toWhat}`);
}
}
ReactDOM.render(
React.createElement(Hello, {toWhat: 'мир'}, null),
document.getElementById('root')
);
- Расскажи как быть в ситуации когда нужно несколько компонентов должны отражать одни и те же изменяющиеся данные. [https://reactjs.org/docs/lifting-state-up.html]
-
Расскажи общими словами про redux. Зачем он нужен и какую проблему решает? [https://redux.js.org/tutorials/essentials/part-1-overview-concepts]
-
Расскажи что ты знаешь про Immutability. Как эта концепция связана с redux? [https://redux.js.org/tutorials/essentials/part-1-overview-concepts#immutability] [https://redux.js.org/usage/structuring-reducers/immutable-update-patterns]
-
Расскажи как работать с асинхронными логикой в redux? Какие подходы можно использовать? [https://redux.js.org/tutorials/fundamentals/part-6-async-logic]
-
Расскажи что такое селекторы в концепции redux? Зачем они нужны? Расскажи что такое memoization и как мы можем это использовать это в redux? [https://redux.js.org/tutorials/fundamentals/part-7-standard-patterns#memoized-selectors]
-
Расскажи что такое паттерны программирования? Какие паттерны ты знаешь? [https://refactoring.guru/]
-
Какой паттерн как тебе кажется базовый при работе с react? [https://refactoring.guru/design-patterns/composite]
promise https://codeshare.io/6pY0QY - task https://codeshare.io/DZYOqk - solution
useEffectAfterMount https://codeshare.io/pqlvV0 - task https://codeshare.io/j0jzWR - solution
- Какие рабочие обязанности тебе нравятся больше всего? Почему?
- С какими людьми тебе легче всего работать? Почему?
- С какими сложней всего и почему?
- Расскажи про свой самый крупный факап. Как ты с ним справился в итоге?
- Какие обязанности особенно нравится выполнять? Чем? Что именно нравится в этих задачах?
- Какие обязанности нравится выполнять меньше всего? Почему? Что можно было бы изменить, чтобы эти задачи стали интересны?
- Нравится ли тебе продукт, который ты делаешь? Почему?
- Если бы ты мог создать продукт с нуля, чтобы это был за продукт?
- Какие особенности проекта, продукта нравятся больше всего? Почему?
- Если есть два хороших решения поставленной задачи, по какому принципу будет сделать выбор, какое решение стоит принять?
- Как ты считаешь, зачем люди строят карьеру? Почему для них это важно?
- Как ты видишь свою карьеру в рамках нашей компании и этой команды?
- Как ты повышаешь свою профессиональную компетенцию? Какие книги читаешь? Курсы?
- Из какого источника ты смог почерпнуть полезные знания последний раз? Чем они оказались полезны?
- Кого ты считаешь экспертом в команде? У кого интересно учиться?
- Считаешь ли ты себя экспертом? Почему?
- Как ты считаешь, что влияет на то, чтобы человек работал в компании долгое время?
- Что может побудить тебя перейти в другую команду или уволиться?