Что такое async/await?
async/await — относительно новый способ написания асинхронного (неблокирующего) кода в JS. Он делает код более читаемым и чистым, чем промисы и функции обратного вызова.
Использование ключевого слова «async» перед функцией заставляет ее возвращать промис.
Ключевое слово «await» можно использовать только внутри асинхронной функции. await ожидает завершения выражения справа, чтобы вернуть его значение перед выполнением следующей строчки кода.
👉 @frontendInterview
async/await — относительно новый способ написания асинхронного (неблокирующего) кода в JS. Он делает код более читаемым и чистым, чем промисы и функции обратного вызова.
Использование ключевого слова «async» перед функцией заставляет ее возвращать промис.
Ключевое слово «await» можно использовать только внутри асинхронной функции. await ожидает завершения выражения справа, чтобы вернуть его значение перед выполнением следующей строчки кода.
async function f() {
let promise = new Promise((resolve, reject) => {
setTimeout(() => resolve("готово!"), 1000)
});
let result = await promise; // будет ждать, пока промис не выполнится (*)
alert(result); // "готово!"
}
f();👉 @frontendInterview
👍8
Head First Git: A Learner's Guide to Understanding Git from the Inside Out
Многие люди, использующие Git, полагаются на «рецепты» — копирование и вставку команд, которые они находят в Интернете, не понимая, как на самом деле работает Git. Но что делать, если вы оказались в затруднительном положении, которое уже не исправить чьей-то готовой командой? С помощью этого уникального практического руководства вы изучите способы работы с Git и получите от этого удовольствие.
👉 @frontendInterview
Многие люди, использующие Git, полагаются на «рецепты» — копирование и вставку команд, которые они находят в Интернете, не понимая, как на самом деле работает Git. Но что делать, если вы оказались в затруднительном положении, которое уже не исправить чьей-то готовой командой? С помощью этого уникального практического руководства вы изучите способы работы с Git и получите от этого удовольствие.
👉 @frontendInterview
Day of the Year
Вам дана дата в формате
Пример:
👉 @frontendInterview
Вам дана дата в формате
[D, M, YYYY]. Создайте функцию, которая вычислит порядковый номер дня этой даты в году.Пример:
toDayOfYear([1, 1, 2000]) => 1👉 @frontendInterview
Что такое Event Propagation?
Когда какое-либо событие происходит в элементе
1. Фаза погружения — событие возникает в объекте
2. Целевая фаза — это когда событие достигает целевого элемента.
3. Фаза всплытия — событие поднимается от
👉 @frontendInterview
Когда какое-либо событие происходит в элементе
DOM, оно на самом деле происходит не только в нем. Событие «распространяется» от объекта window до вызвавшего его элемента (event.target). При этом событие последовательно пронизывает всех предков целевого элемента. Распространение события имеет три стадии:1. Фаза погружения — событие возникает в объекте
window и опускается до цели события через всех ее предков.2. Целевая фаза — это когда событие достигает целевого элемента.
3. Фаза всплытия — событие поднимается от
event.target, последовательно проходит через всех его предков и достигает объекта window.👉 @frontendInterview
👍18
👍8🔥2😱1
Перечислите методы Promise
Promise.all() - возвращает промис, который выполнится тогда, когда будут выполнены все промисы, переданные в виде перечисляемого аргумента, или отклонено любое из переданных промисов.
Promise.allSettled() - возвращает промис, который исполняется когда все полученные промисы завершены (исполнены или отклонены), содержащий массив результатов исполнения полученных промисов.
Promise.any() - принимает итерируемый объект содержащий объекты промисов. Как только один из промисов выполнится успешно, метод возвратит единственный объект Promise со значением выполненного промиса. Если ни один из промисов не завершится успешно, тогда возвращённый объект будет отклонён.
Promise.race() - возвращает выполненный или отклонённый промис, в зависимости от того, с каким результатом завершится первый из переданных промисов, со значением или причиной отклонения этого промиса.
Promise.reject(reason) - возвращает объект Promise, который был отклонён по указанной причине.
Promise.resolve(value) - возвращает Promise выполненный с переданным значением.
👉 @frontendInterview
Promise.all() - возвращает промис, который выполнится тогда, когда будут выполнены все промисы, переданные в виде перечисляемого аргумента, или отклонено любое из переданных промисов.
Promise.allSettled() - возвращает промис, который исполняется когда все полученные промисы завершены (исполнены или отклонены), содержащий массив результатов исполнения полученных промисов.
Promise.any() - принимает итерируемый объект содержащий объекты промисов. Как только один из промисов выполнится успешно, метод возвратит единственный объект Promise со значением выполненного промиса. Если ни один из промисов не завершится успешно, тогда возвращённый объект будет отклонён.
Promise.race() - возвращает выполненный или отклонённый промис, в зависимости от того, с каким результатом завершится первый из переданных промисов, со значением или причиной отклонения этого промиса.
Promise.reject(reason) - возвращает объект Promise, который был отклонён по указанной причине.
Promise.resolve(value) - возвращает Promise выполненный с переданным значением.
👉 @frontendInterview
👍10
😁12👍5
Какое значение будет содержать this в коде c картинки?
Anonymous Quiz
9%
Ошибка
26%
Глобальный объект
40%
Объект person
26%
undefined
Когда не следует выполнять рефакторинг?
Значение слова «рефакторинг» довольно размыто: так называют исправление дефектов, реализацию новой функциональности, модификацию проекта — по сути любое изменение кода. Это неуместно. Целенаправленный процесс изменений может быть эффективной стратегией, обеспечивающей постепенное повышение качества программы при ее сопровождении и предотвращающей всем известную смертельную спираль энтропии ПО, но само по себе изменение достоинств не имеет.
👉 @frontendInterview
Значение слова «рефакторинг» довольно размыто: так называют исправление дефектов, реализацию новой функциональности, модификацию проекта — по сути любое изменение кода. Это неуместно. Целенаправленный процесс изменений может быть эффективной стратегией, обеспечивающей постепенное повышение качества программы при ее сопровождении и предотвращающей всем известную смертельную спираль энтропии ПО, но само по себе изменение достоинств не имеет.
👉 @frontendInterview
❤4
Карьера Software Engineering Manager. Эффективное управление командой разработчиков ПО
Перед вами неожиданно открылась возможность возглавить команду разработчиков ПО? Пора становиться менеджером? Как решить, подходит ли вам такой шаг в карьере? И если да, то чему нужно научиться, чтобы добиться успеха? С чего начать? Как понять, что вы все делаете правильно? Что вообще означает «менеджмент»? Джеймс Стэньер делится секретами, которые необходимо знать, чтобы успешно управлять командой разработчиков.
👉 @frontendInterview
Перед вами неожиданно открылась возможность возглавить команду разработчиков ПО? Пора становиться менеджером? Как решить, подходит ли вам такой шаг в карьере? И если да, то чему нужно научиться, чтобы добиться успеха? С чего начать? Как понять, что вы все делаете правильно? Что вообще означает «менеджмент»? Джеймс Стэньер делится секретами, которые необходимо знать, чтобы успешно управлять командой разработчиков.
👉 @frontendInterview
Sort array by string length
Создайте функцию, которая будет сортировать массивы строк по их длине.
Пример:
👉 @frontendInterview
Создайте функцию, которая будет сортировать массивы строк по их длине.
Пример:
["Telescopes", "Glasses", "Eyes", "Monocles"] =>
["Eyes", "Glasses", "Monocles", "Telescopes"]👉 @frontendInterview
Что такое React.Suspense?
Suspense предназначен для отображения запасного интерфейса (спиннера) во время ожидания дочерних компонентов. Дочерние компоненты в это время могут выполнять асинхронные вызовы API, либо загружаться через lazy load.
В React 18 фича стала стабильной, получила большие архитектурные изменения под капотом и приобрела название “Конкурентные задержки” (Concurrent Suspense). Смена названия никак не отразится на пользователях.
👉 @frontendInterview
Suspense предназначен для отображения запасного интерфейса (спиннера) во время ожидания дочерних компонентов. Дочерние компоненты в это время могут выполнять асинхронные вызовы API, либо загружаться через lazy load.
В React 18 фича стала стабильной, получила большие архитектурные изменения под капотом и приобрела название “Конкурентные задержки” (Concurrent Suspense). Смена названия никак не отразится на пользователях.
const App = () => {
return (
<Suspense fallback={<Loading />}>
<SuspendedComponent />
<Sibling />
</Suspense>
);
};👉 @frontendInterview
👍13❤2🔥1
Чем является глобальная функция 'setTimeout'?
Anonymous Quiz
60%
Часть Browser API
31%
Часть JavaScript
9%
Часть EcmaScript
1%
Сторонняя утилита
👍7🔥6👎3🤔1
Что такое React.StrictMode?
StrictMode — инструмент для обнаружения потенциальных проблем в приложении. Так же как и Fragment, StrictMode не рендерит видимого UI. Строгий режим активирует дополнительные проверки и предупреждения для своих потомков.
Примечание: Проверки строгого режима работают только в режиме разработки; они не оказывают никакого эффекта в продакшен-сборке. Строгий режим может быть включён для любой части приложения.
На данный момент StrictMode помогает в:
- обнаружении небезопасных методов жизненного цикла
- предупреждении об использовании устаревшего API строковых реф
- предупреждении об использовании устаревшего метода findDOMNode
- обнаружении неожиданных побочных эффектов
- обнаружении устаревшего API контекста
- обеспечение переиспользуемости состояния
👉 @frontendInterview
StrictMode — инструмент для обнаружения потенциальных проблем в приложении. Так же как и Fragment, StrictMode не рендерит видимого UI. Строгий режим активирует дополнительные проверки и предупреждения для своих потомков.
Примечание: Проверки строгого режима работают только в режиме разработки; они не оказывают никакого эффекта в продакшен-сборке. Строгий режим может быть включён для любой части приложения.
На данный момент StrictMode помогает в:
- обнаружении небезопасных методов жизненного цикла
- предупреждении об использовании устаревшего API строковых реф
- предупреждении об использовании устаревшего метода findDOMNode
- обнаружении неожиданных побочных эффектов
- обнаружении устаревшего API контекста
- обеспечение переиспользуемости состояния
👉 @frontendInterview
👍5🔥4