React Design Patterns and Best Practices (2019)
В книге рассказывается о том, как, работая с React.js, применять существующие шаблоны проектирования в разных ситуациях, будь то новые или уже существующие проекты. Книга поможет вам начать работать с React, создавая ваши проекты более гибкими, эффективными и простыми в обращении, значительно повышая скорость рабочего процесса без снижения качества.
👉 @frontendInterview
В книге рассказывается о том, как, работая с React.js, применять существующие шаблоны проектирования в разных ситуациях, будь то новые или уже существующие проекты. Книга поможет вам начать работать с React, создавая ваши проекты более гибкими, эффективными и простыми в обращении, значительно повышая скорость рабочего процесса без снижения качества.
👉 @frontendInterview
Можете ли вы описать основное различие методов массивов forEach() и map()? В каких ситуациях вы предпочли бы один из этих методов другому?
Для того чтобы понять разницу между этими методами — поговорим об особенностях работы каждого из них.
Вот как работает .forEach():
1. Он перебирает элементы массива.
2. Он выполняет переданную ему функцию обратного вызова для каждого элемента массива.
3. Он ничего не возвращает.
1. Он перебирает элементы массива.
2. Он преобразует каждый элемент исходного массива в элемент нового массива, вызывая переданную ему функцию для каждого элемента исходного массива.
👉 @frontendInterview
Для того чтобы понять разницу между этими методами — поговорим об особенностях работы каждого из них.
Вот как работает .forEach():
1. Он перебирает элементы массива.
2. Он выполняет переданную ему функцию обратного вызова для каждого элемента массива.
3. Он ничего не возвращает.
const a = [1, 2, 3];Вот краткая характеристика метода .map():
const doubled = a.forEach((num, index) => {
// Сделать что-то с num и/или с index.
});
// doubled = undefined
1. Он перебирает элементы массива.
2. Он преобразует каждый элемент исходного массива в элемент нового массива, вызывая переданную ему функцию для каждого элемента исходного массива.
const a = [1, 2, 3];В результате оказывается, что основное различие между .forEach() и .map() заключается в том, что .map() возвращает новый массив. Если вам нужно получить результат преобразования элементов исходного массива, не меняя этот массив, тогда стоит выбрать .map(). Если же нужно просто перебрать элементы массива — тогда можно воспользоваться .forEach().
const doubled = a.map(num => {
return num * 2;
});
// doubled = [2, 4, 6]
👉 @frontendInterview
Что такое необъявленная переменная в JavaScript?
Необъявленная переменная создаётся при назначении значения идентификатору, который не был ранее объявлен с использованием var, let или const. Необъявленные переменные объявляются в глобальной области видимости, за пределами текущей области видимости. В строгом режиме при попытке назначения значения необъявленной переменной будет выброшено исключение ReferenceError. Использовать необъявленные переменные не рекомендуется — так же, как не рекомендуется использовать глобальные переменные. Их стоит всеми силами избегать. Для того чтобы обезопасить себя от последствий использования необъявленных переменных, воспользуйтесь блоком try/catch.
👉 @frontendInterview
Необъявленная переменная создаётся при назначении значения идентификатору, который не был ранее объявлен с использованием var, let или const. Необъявленные переменные объявляются в глобальной области видимости, за пределами текущей области видимости. В строгом режиме при попытке назначения значения необъявленной переменной будет выброшено исключение ReferenceError. Использовать необъявленные переменные не рекомендуется — так же, как не рекомендуется использовать глобальные переменные. Их стоит всеми силами избегать. Для того чтобы обезопасить себя от последствий использования необъявленных переменных, воспользуйтесь блоком try/catch.
function foo() {
x = 1; // Выбрасывает в строгом режиме ReferenceError
}
foo();
console.log(x); // 1👉 @frontendInterview
Dubstep
Вам дана строка, соответствующая звукам из дабстепа. Необходимо очистить строку от "WUB" и вернуть слова из песни.
Пример:
👉 @frontendInterview
Вам дана строка, соответствующая звукам из дабстепа. Необходимо очистить строку от "WUB" и вернуть слова из песни.
Пример:
songDecoder("WUBWEWUBAREWUBWUBTHEWUBCHAMPIONSWUBMYWUBFRIENDWUB")
// => WE ARE THE CHAMPIONS MY FRIEND👉 @frontendInterview
Какой цвет у черты под текстом "page"?
Anonymous Quiz
31%
blue
12%
black
42%
red
14%
Под page нет черты
Расскажите про undefined-переменную.
Переменная, содержащая undefined — это объявленная переменная, которой не назначено некое значение. Значение undefined образует собственный тип данных. Если функция ничего не возвращает, и при этом результат её вызова записывается в переменную, то в эту переменную попадёт undefined. Для того чтобы организовать проверку на undefined, можно воспользоваться оператором строгого равенства (===) или оператором typeof, который возвратит строку undefined. Обратите внимание на то, что при проверке на undefined не следует пользоваться оператором нестрогого равенства (==), так как он считает равными значения undefined и null.
Переменная, содержащая undefined — это объявленная переменная, которой не назначено некое значение. Значение undefined образует собственный тип данных. Если функция ничего не возвращает, и при этом результат её вызова записывается в переменную, то в эту переменную попадёт undefined. Для того чтобы организовать проверку на undefined, можно воспользоваться оператором строгого равенства (===) или оператором typeof, который возвратит строку undefined. Обратите внимание на то, что при проверке на undefined не следует пользоваться оператором нестрогого равенства (==), так как он считает равными значения undefined и null.
var foo;
console.log(foo); // undefined
console.log(foo === undefined); // true
console.log(typeof foo === 'undefined'); // true
console.log(foo == null); // true. Не используйте такую конструкцию для проверки на undefined!
function bar() {}
var baz = bar();
console.log(baz); // undefinedЧто выведется в консоль?
Anonymous Quiz
13%
числа 1, 2, 3, 4, 5
6%
числа от 0 до 5 пять раз
50%
числа 0, 1, 2, 3, 4
5%
ReferenceError
26%
число 5 пять раз
Расскажите про переменную, содержащую значение null. В чем её отличие от undefined-переменной?
Переменная, содержащая значение null, должна быть явным образом установлена в это значение. Она символизирует отсутствие значения и отличается от undefined-переменной тем, что значение, находящееся в ней, было ей явным образом назначено. Для того чтобы проверить значение на null, достаточно воспользоваться оператором строгого равенства. Для проверки на null, как и в случае с проверкой на undefined, не следует пользоваться оператором нестрогого равенства, считающим равными значения null и undefined.
Переменная, содержащая значение null, должна быть явным образом установлена в это значение. Она символизирует отсутствие значения и отличается от undefined-переменной тем, что значение, находящееся в ней, было ей явным образом назначено. Для того чтобы проверить значение на null, достаточно воспользоваться оператором строгого равенства. Для проверки на null, как и в случае с проверкой на undefined, не следует пользоваться оператором нестрогого равенства, считающим равными значения null и undefined.
var foo = null;Я стараюсь никогда не оставлять переменные в необъявленном состоянии, или в состоянии, когда они объявлены, но им явным образом не назначено никакого значения.
console.log(foo === null); // true
console.log(typeof foo === 'object'); // true
console.log(foo == undefined); // true Не используйте такую конструкцию для проверки на null!
Расскажите о шаблоне проектирования «Открытый модуль»
Шаблон «Открытый модуль» (Revealing Module) является разновидностью шаблона «Модуль» (Module). Цель использования этого шаблона заключается в поддержке инкапсуляции и в открытии некоторых свойств и методов, возвращённых в объектном литерале. На картинке представлена реализация этого шаблона.
Очевидный недостаток этого шаблона заключается в том, что при его использовании нельзя обращаться к приватным методам.
👉 @frontendInterview
Шаблон «Открытый модуль» (Revealing Module) является разновидностью шаблона «Модуль» (Module). Цель использования этого шаблона заключается в поддержке инкапсуляции и в открытии некоторых свойств и методов, возвращённых в объектном литерале. На картинке представлена реализация этого шаблона.
Очевидный недостаток этого шаблона заключается в том, что при его использовании нельзя обращаться к приватным методам.
👉 @frontendInterview
Building Web Apps with WordPress (2019)
Если у вас есть базовый опыт работы с PHP, HTML, CSS и JavaScript, вы можете использовать WordPress для разработки быстрых, масштабируемых, безопасных и настраиваемых веб-приложений, мобильных приложений, веб-сервисов. Наряду с основными функциями WordPress вы узнаете, как создавать собственные плагины, темы и сервисы практически для любого веб-приложения или мобильного приложения.
👉 @frontendInterview
Если у вас есть базовый опыт работы с PHP, HTML, CSS и JavaScript, вы можете использовать WordPress для разработки быстрых, масштабируемых, безопасных и настраиваемых веб-приложений, мобильных приложений, веб-сервисов. Наряду с основными функциями WordPress вы узнаете, как создавать собственные плагины, темы и сервисы практически для любого веб-приложения или мобильного приложения.
👉 @frontendInterview
Найти делители!
Создайте функцию, которая принимает число и возвращает в виде массива его делители
Пример:
👉 @frontendInterview
Создайте функцию, которая принимает число и возвращает в виде массива его делители
Пример:
divisors(12); // should return [2,3,4,6]
divisors(25); // should return [5]👉 @frontendInterview