GraphQL in Action
Язык запросов GraphQL упрощает взаимодействие с веб-серверами, позволяя выполнять эффективные запросы к API. В данной книге вы узнаете, как добавить эти преимущества в свои собственные API, предоставляя вашим клиентам возможность запрашивать именно то, что им нужно, с вашего сервера. Практическая и основанная на примерах книга, учит всему, что нужно для начала работы с GraphQL - от принципов проектирования и синтаксиса до оптимизации производительности.
👉 @frontendInterview
Язык запросов GraphQL упрощает взаимодействие с веб-серверами, позволяя выполнять эффективные запросы к API. В данной книге вы узнаете, как добавить эти преимущества в свои собственные API, предоставляя вашим клиентам возможность запрашивать именно то, что им нужно, с вашего сервера. Практическая и основанная на примерах книга, учит всему, что нужно для начала работы с GraphQL - от принципов проектирования и синтаксиса до оптимизации производительности.
👉 @frontendInterview
Return Negative
Вам дано число. Сделайте его отрицательным и верните результат. Число может уже быть отрицательным.
Примеры:
👉 @frontendInterview
Вам дано число. Сделайте его отрицательным и верните результат. Число может уже быть отрицательным.
Примеры:
makeNegative(1); // return -1
makeNegative(-5); // return -5
makeNegative(0); // return 0
makeNegative(0.12); // return -0.12👉 @frontendInterview
Напишите функцию сложения вида add(num1)(num2)
Решение кроется в переопределении метода valueOf .
Ответ:
В примере выше после выполнения add(2)(3) возвращается function, которую console.log будет превращать в String, в ходе этих действий будет вызван метод valueOf для преобразования function к примитиву, а так мы переопределили данный метод, то он вернёт наше значение sum вместо стандартного.
👉 @frontendInterview
Решение кроется в переопределении метода valueOf .
Ответ:
const add = (a) => {
let sum = a;
const func = (b) => {
sum += b;
return func;
};
func.valueOf = () => sum;
return func;
};
console.log(add(2)(3)); // 5;
Когда мы вызываем console.log , он ожидает увидеть String, если его там нет, то он попытается сделать из полученного значения String.В примере выше после выполнения add(2)(3) возвращается function, которую console.log будет превращать в String, в ходе этих действий будет вызван метод valueOf для преобразования function к примитиву, а так мы переопределили данный метод, то он вернёт наше значение sum вместо стандартного.
👉 @frontendInterview
Напишите простую функцию, чтобы узнать равен ли один из входных параметров 3.
Тут делается упор на проверку знаний об arguments, но иногда заходят ещё дальше и просят рассказать каким образом работает Array.prototype.slice.call(arguments).
Ответ:
Но всё же, как он работает ?
.call() и .apply() позволяют явно установить this в функции. И если передать argument как this, то slice будет работать с ним как с обычным массивом.
👉 @frontendInterview
Тут делается упор на проверку знаний об arguments, но иногда заходят ещё дальше и просят рассказать каким образом работает Array.prototype.slice.call(arguments).
Ответ:
function isThreePassed(){
const args = Array.prototype.slice.call(arguments);
return args.indexOf(3) != -1;
}
isThreePassed(1,2) //false
isThreePassed(9,3,4,9) //true
Как мы знаем, arguments не массив, а обычный объект, поэтому у него нет такого полезного метода как indexOf. Для этого используется Array.prototype.slice.call(arguments), который делает из argument — > array.Но всё же, как он работает ?
.call() и .apply() позволяют явно установить this в функции. И если передать argument как this, то slice будет работать с ним как с обычным массивом.
👉 @frontendInterview
Учитесь сейчас важным навыкам фронтенд-разработки со скидкой 30%🚀
-30% на самые популярные курсы для роста до мидла от HTML Academy:
— «Алгоритмы и структуры данных». Узнаете, как писать быстрый и чистый код и правильно выстраивать архитектуру проекта. А ещё сможете проходить собеседования в крупные компании, ведь там обязательно спрашивают про алгоритмы.
— «TypeScript. Теория типов». Научитесь кодить быстрее и без ошибок, а ваш код будет проще читать и поддерживать.
— «Анимации, часть 1. CSS-анимации». Сможете создавать простые и сложные анимации, чтобы сделать сайт красивым.
А если купить курсы в комплекте, можно сэкономить ещё 10%.
Скидки действуют до 19 июня🎁
Начните учиться прямо сейчас, двигайтесь в комфортном темпе и сразу применяйте новые навыки в своих проектах.
-30% на самые популярные курсы для роста до мидла от HTML Academy:
— «Алгоритмы и структуры данных». Узнаете, как писать быстрый и чистый код и правильно выстраивать архитектуру проекта. А ещё сможете проходить собеседования в крупные компании, ведь там обязательно спрашивают про алгоритмы.
— «TypeScript. Теория типов». Научитесь кодить быстрее и без ошибок, а ваш код будет проще читать и поддерживать.
— «Анимации, часть 1. CSS-анимации». Сможете создавать простые и сложные анимации, чтобы сделать сайт красивым.
А если купить курсы в комплекте, можно сэкономить ещё 10%.
Скидки действуют до 19 июня🎁
Начните учиться прямо сейчас, двигайтесь в комфортном темпе и сразу применяйте новые навыки в своих проектах.
Объедините два массива с вложенностью
Задачу можно решать различными способами. Обычно хотят узнать знает ли собеседуемый такой метод как reduce.
Идея заключается в том, чтобы обойти все элементы исходного массива и его “под массивов” с целью вернуть найденные значения в новый массив. Это происходит рекурсивно пока мы не дойдём до последнего элемента.
Так же с формированием нового массива нам помогает concat.
Ответ:
👉 @frontendInterview
Задачу можно решать различными способами. Обычно хотят узнать знает ли собеседуемый такой метод как reduce.
Идея заключается в том, чтобы обойти все элементы исходного массива и его “под массивов” с целью вернуть найденные значения в новый массив. Это происходит рекурсивно пока мы не дойдём до последнего элемента.
Так же с формированием нового массива нам помогает concat.
Ответ:
const flatten = (arr) => arr.reduce((flat, toFlatten) => flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten), []);👉 @frontendInterview
This media is not supported in your browser
VIEW IN TELEGRAM
Занимаетесь frontend-разработкой, но для серьёзных проектов пока не хватает навыков?
Тимлиды ВКонтакте записали топовый курс с акцентом на практику. За 5 месяцев вы научитесь делать качественные, быстрые интерфейсы, разберётесь с деплоем, CI/CD, кэшированием и серверной оптимизацией — и поймёте, как тратить на разработку меньше времени.
Результатом обучения станет готовый сервис на React + Redux с деплоем на собственном сервере. После прохождения курса вы точно будете готовы к работе над крупными проектами, а наш HR приложит максимум усилий, чтобы трудоустроить вас в хорошую компанию.
Переходите по ссылке и записывайтесь на курс до 17 июня — по промокоду FRONTERVIEW действует скидка 10%. Кстати, на сайте можно пройти бесплатную демоверсию.
Тимлиды ВКонтакте записали топовый курс с акцентом на практику. За 5 месяцев вы научитесь делать качественные, быстрые интерфейсы, разберётесь с деплоем, CI/CD, кэшированием и серверной оптимизацией — и поймёте, как тратить на разработку меньше времени.
Результатом обучения станет готовый сервис на React + Redux с деплоем на собственном сервере. После прохождения курса вы точно будете готовы к работе над крупными проектами, а наш HR приложит максимум усилий, чтобы трудоустроить вас в хорошую компанию.
Переходите по ссылке и записывайтесь на курс до 17 июня — по промокоду FRONTERVIEW действует скидка 10%. Кстати, на сайте можно пройти бесплатную демоверсию.
Чему равен 1vmin, если ширина вьюпорта 1000px, а высота 800px.
Anonymous Quiz
21%
80px
27%
10px
41%
8px
11%
100px
Сила jаvanoscript: 68 способов эффективного использования JS
Эта книга поможет вам освоить всю мощь языка программирования jаvanoscript и научит применять его максимально эффективно. Автор описывает внутреннюю работу языка на понятных практических примерах, которые помогут как начинающим программистам, так и опытным разработчикам повысить уровень понимания jаvanoscript и существенно обогатить опыт его применения в своей работе.
👉 @frontendInterview
Эта книга поможет вам освоить всю мощь языка программирования jаvanoscript и научит применять его максимально эффективно. Автор описывает внутреннюю работу языка на понятных практических примерах, которые помогут как начинающим программистам, так и опытным разработчикам повысить уровень понимания jаvanoscript и существенно обогатить опыт его применения в своей работе.
👉 @frontendInterview
The takeWhile Function
Создайте функцию, которая принимает массив значений и предикат, который будет проверять каждое из значений. Функция должна проверять каждое значение последовательно, пока результат равен true.
Пример:
👉 @frontendInterview
Создайте функцию, которая принимает массив значений и предикат, который будет проверять каждое из значений. Функция должна проверять каждое значение последовательно, пока результат равен true.
Пример:
function isEven(num) {
return num % 2 === 0;
}
var seq = [2,4,6,8,1,2,5,4,3,2];
takeWhile(seq, isEven) // -> [2,4,6,8]👉 @frontendInterview
В чем смысл оборачивания всего содержимого JavaScript-файла в функцию?
Этот шаблон называется IIFE - Immediately Invoked Function Expression (немедленно вызываемое функциональное выражение). Этот подход позволяет:
- обеспечить коду собственный блок видимости, то-есть контекст выполнения
- избежать загрязнения глобальной области видимости глобальными переменными
- избежать неумышленного переопределения уже существующих переменных в глобальной области видимости
👉 @frontendInterview
Этот шаблон называется IIFE - Immediately Invoked Function Expression (немедленно вызываемое функциональное выражение). Этот подход позволяет:
- обеспечить коду собственный блок видимости, то-есть контекст выполнения
- избежать загрязнения глобальной области видимости глобальными переменными
- избежать неумышленного переопределения уже существующих переменных в глобальной области видимости
👉 @frontendInterview