Twice as old
Ваша функция должна принимать два аргумента:
1. Возраст отца
2. Возраст сына
Посчитайте, сколько лет назад отец был в два раза старше сына.
Пример:
👉 @frontendInterview
Ваша функция должна принимать два аргумента:
1. Возраст отца
2. Возраст сына
Посчитайте, сколько лет назад отец был в два раза старше сына.
Пример:
twiceAsOld(36,7) => 22👉 @frontendInterview
Что такое флаги в регулярных выражениях?
Флаги — символы (набор символов), которые отвечают за то, каким именно образом будет происходить поиск.
В JavaScript их всего шесть:
i
С этим флагом поиск не зависит от регистра: нет разницы между A и a.
g
С этим флагом поиск ищет все совпадения, без него – только первое.
m
Многострочный режим.
s
Включает режим «dotall», при котором точка . может соответствовать символу перевода строки n.
u
Включает полную поддержку юникода. Флаг разрешает корректную обработку суррогатных пар.
y
Режим поиска на конкретной позиции в тексте
👉 @frontendInterview
Флаги — символы (набор символов), которые отвечают за то, каким именно образом будет происходить поиск.
В JavaScript их всего шесть:
i
С этим флагом поиск не зависит от регистра: нет разницы между A и a.
g
С этим флагом поиск ищет все совпадения, без него – только первое.
m
Многострочный режим.
s
Включает режим «dotall», при котором точка . может соответствовать символу перевода строки n.
u
Включает полную поддержку юникода. Флаг разрешает корректную обработку суррогатных пар.
y
Режим поиска на конкретной позиции в тексте
👉 @frontendInterview
Что нужно подставить в onClick, чтобы выполнилась функция handleClick с параметром 10 при нажатии?
Anonymous Quiz
16%
{this.handleClick(10)}
52%
{() => this.handleClick(10)}
20%
{() => handleClick(10)}
12%
{handleClick(10)}
Что такое Promise? Для чего он нужен?
Promise – это специальный объект, который содержит своё состояние. Вначале pending («ожидание»), затем – одно из: fulfilled («выполнено успешно») или rejected («выполнено с ошибкой»).
Синтаксис создания Promise:
Её аргументы resolve и reject – это колбэки, которые предоставляет сам JavaScript. Наш код – только внутри исполнителя.
Когда он получает результат, сейчас или позже – не важно, он должен вызвать один из этих колбэков:
resolve(value) — если работа завершилась успешно, с результатом value.
reject(error) — если произошла ошибка, error – объект ошибки.
Promise – это специальный объект, который содержит своё состояние. Вначале pending («ожидание»), затем – одно из: fulfilled («выполнено успешно») или rejected («выполнено с ошибкой»).
Синтаксис создания Promise:
let promise = new Promise(function(resolve, reject) {
// функция-исполнитель (executor)
// "певец"
});
Функция, переданная в конструкцию new Promise, называется исполнитель (executor). Когда Promise создаётся, она запускается автоматически. Она должна содержать «создающий» код, который когда-нибудь создаст результат. В терминах нашей аналогии: исполнитель – это «певец».Её аргументы resolve и reject – это колбэки, которые предоставляет сам JavaScript. Наш код – только внутри исполнителя.
Когда он получает результат, сейчас или позже – не важно, он должен вызвать один из этих колбэков:
resolve(value) — если работа завершилась успешно, с результатом value.
reject(error) — если произошла ошибка, error – объект ошибки.
Где будет находиться элемент с id #box2?
Anonymous Quiz
56%
Справа от box1
22%
Под box1
18%
Снизу от box1
4%
Сверху от box1
Что значит фраза: "экран с высокой плотностью пикселей"?
CSS-пиксели (CSS pixels) — абстрактная величина, используемая браузерами для точного отображения контента на страницах, вне зависимости от экрана (DIPs: device-independent pixels).
Пример:
👉 @frontendInterview
CSS-пиксели (CSS pixels) — абстрактная величина, используемая браузерами для точного отображения контента на страницах, вне зависимости от экрана (DIPs: device-independent pixels).
Пример:
<div height="200" width="300"></div>Такой блок на обычных экранах будет занимать область 200x300 пикселей, а на Retina-экранах тот же блок получит 400x600 пикселей. Таким образом, на Retina-экранах плотность пикселей в 4 раза больше, чем на обычных.
👉 @frontendInterview
Возможно ли передать ref из компонента одному из его дочерних компонентов в React?
Anonymous Quiz
85%
да
15%
нет
Принципы юнит тестирования.
Юнит-тестирование - это процесс проверки отдельных модулей программы на корректность работы. Правильный подход к тестированию позволит максимизировать качество и скорость разработки проекта. Некачественные тесты, наоборот, могут нанести вред: нарушить работоспособность кода, увеличить количество ошибок, растянуть сроки и затраты. Грамотное внедрение юнит-тестирования - хорошее решение для развития проекта.
Научитесь разрабатывать тесты профессионального уровня, без ошибок автоматизировать процессы тестирования, а также интегрировать тестирование в жизненный цикл приложения. Со временем вы овладеете особым чутьем, присущим специалистам по тестированию. Как ни удивительно, практика написания хороших тестов способствует созданию более качественного кода.
👉 @frontendInterview
Юнит-тестирование - это процесс проверки отдельных модулей программы на корректность работы. Правильный подход к тестированию позволит максимизировать качество и скорость разработки проекта. Некачественные тесты, наоборот, могут нанести вред: нарушить работоспособность кода, увеличить количество ошибок, растянуть сроки и затраты. Грамотное внедрение юнит-тестирования - хорошее решение для развития проекта.
Научитесь разрабатывать тесты профессионального уровня, без ошибок автоматизировать процессы тестирования, а также интегрировать тестирование в жизненный цикл приложения. Со временем вы овладеете особым чутьем, присущим специалистам по тестированию. Как ни удивительно, практика написания хороших тестов способствует созданию более качественного кода.
👉 @frontendInterview
Short Long Short
Вам даны две строки - короткая и длинная. Создайте функцию, которая преобразует их в одну строку, которая будет состоять из короткой строки + длинной строки + короткой строки.
Примеры:
👉 @frontendInterview
Вам даны две строки - короткая и длинная. Создайте функцию, которая преобразует их в одну строку, которая будет состоять из короткой строки + длинной строки + короткой строки.
Примеры:
("1", "22") --> "1221"
("22", "1") --> "1221"👉 @frontendInterview
Что такое индекс в Git?
Индекс в Git — это специальная промежуточная область, в которой хранятся изменения файлов на пути от рабочей директории до репозитория. При выполнении коммита в него попадают только те изменения, которые были добавлены в индекс.
Понятие индекса в Git появилось не случайно. Даже когда разработчик работает над одной задачей, по пути он натыкается на разные места в коде, которые либо плохо оформлены, либо содержат ошибки, либо должны быть исправлены в соответствии с какими-то новыми требованиями. И в большинстве ситуаций совершенно нормально исправлять эти недочеты, что все и делают. В итоге в рабочей директории появляется множество разных исправлений, которые частично относятся к выполняемой задаче, а частично содержат множественные исправления, напрямую не связанные с основными изменениями. В чём здесь проблема?
Если делать ровно один коммит, включающий в себя и основную задачу и дополнительные исправления, то появляется несколько неприятных побочных эффектов. Во-первых, сложнее смотреть историю. Коммит начинает содержать совершенно несвязанные изменения, которые отвлекают во время ревью (проверки чужого кода).
Именно здесь помогает индекс. Его наличие позволяет меньше переживать на тему того, как сформируется коммит.
Стандартный способ работы с индексом — это добавление или изменение файлов и последующий коммит:
👉 @frontendInterview
Индекс в Git — это специальная промежуточная область, в которой хранятся изменения файлов на пути от рабочей директории до репозитория. При выполнении коммита в него попадают только те изменения, которые были добавлены в индекс.
Понятие индекса в Git появилось не случайно. Даже когда разработчик работает над одной задачей, по пути он натыкается на разные места в коде, которые либо плохо оформлены, либо содержат ошибки, либо должны быть исправлены в соответствии с какими-то новыми требованиями. И в большинстве ситуаций совершенно нормально исправлять эти недочеты, что все и делают. В итоге в рабочей директории появляется множество разных исправлений, которые частично относятся к выполняемой задаче, а частично содержат множественные исправления, напрямую не связанные с основными изменениями. В чём здесь проблема?
Если делать ровно один коммит, включающий в себя и основную задачу и дополнительные исправления, то появляется несколько неприятных побочных эффектов. Во-первых, сложнее смотреть историю. Коммит начинает содержать совершенно несвязанные изменения, которые отвлекают во время ревью (проверки чужого кода).
# Обычно в таких коммитах встречается условие И в описанииВо-вторых, что вероятно даже важнее, откат коммита по любым причинам приведет к тому, что откатятся правки, которые всё равно нужно будет делать.
# Показатель того, что в рамках одного коммита сделано несколько изменений
$ git commit -m 'add new feature and fix something'
Именно здесь помогает индекс. Его наличие позволяет меньше переживать на тему того, как сформируется коммит.
Стандартный способ работы с индексом — это добавление или изменение файлов и последующий коммит:
$ git add somefile
$ git commit -m 'add somefile'👉 @frontendInterview
С помощью какой команды можно просмотреть подключения к внешним репозиториям?
Anonymous Quiz
9%
git branch
52%
git remote
22%
git host
17%
git get-remote
Что такое const assertion в TypeScript?
В TypeScript 3.4, кроме прочих новшеств, появилось и понятие const assertion (константное утверждение), предусматривающее использование конструкции as const. Это — упрощённый метод объявления констант, содержащих иммутабельные объекты и массивы.
Такие объявления строятся с помощью добавления as const в конец объявления константы. У этого метода есть и дополнительное преимущество, которое заключается в том, что при его использовании не нужно явным образом указывать тип в утверждении as const.
👉 @frontendInterview
В TypeScript 3.4, кроме прочих новшеств, появилось и понятие const assertion (константное утверждение), предусматривающее использование конструкции as const. Это — упрощённый метод объявления констант, содержащих иммутабельные объекты и массивы.
Такие объявления строятся с помощью добавления as const в конец объявления константы. У этого метода есть и дополнительное преимущество, которое заключается в том, что при его использовании не нужно явным образом указывать тип в утверждении as const.
const person = {
name: 'Will'
} as const;
person.name = 'Diana'; // ошибка!
// С массивами тоже можно использовать as const
const array = [1, 2, 3] as const;
array.push(4); // ошибка!👉 @frontendInterview
Что такое SyntheticEvent в React?
Ваши обработчики событий получают экземпляр SyntheticEvent, это кроссбраузерная обёртка над нативным экземпляром события. У неё такой же интерфейс, как и у нативного события, включая методы stopPropagation() и preventDefault(). Эта обёртка помогает событиям работать одинаково во всех браузерах.
Если вам всё-таки нужно получить нативное браузерное событие, обратитесь к атрибуту nativeEvent. Синтетические события отличаются от нативных событий браузера и непосредственно не связаны с ними. Например, в синтетическом событии onMouseLeave атрибут event.nativeEvent будет указывать на mouseout. Эта деталь реализации не является частью публичного API, поэтому может измениться со временем.
👉 @frontendInterview
Ваши обработчики событий получают экземпляр SyntheticEvent, это кроссбраузерная обёртка над нативным экземпляром события. У неё такой же интерфейс, как и у нативного события, включая методы stopPropagation() и preventDefault(). Эта обёртка помогает событиям работать одинаково во всех браузерах.
Если вам всё-таки нужно получить нативное браузерное событие, обратитесь к атрибуту nativeEvent. Синтетические события отличаются от нативных событий браузера и непосредственно не связаны с ними. Например, в синтетическом событии onMouseLeave атрибут event.nativeEvent будет указывать на mouseout. Эта деталь реализации не является частью публичного API, поэтому может измениться со временем.
👉 @frontendInterview