Frontend Interview - собеседования по Javanoscript / Html / Css – Telegram
Frontend Interview - собеседования по Javanoscript / Html / Css
11.4K subscribers
2.1K photos
118 videos
319 files
530 links
Канал для подготовки к собеседованиям по фронтенду

Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront

Купить рекламу: https://telega.in/c/frontendinterview

Канал в реестре РКН:
https://rknn.link/su
Download Telegram
Return Negative

Вам дано число. Сделайте его отрицательным и верните результат. Число может уже быть отрицательным.

Примеры:
makeNegative(1); // return -1
makeNegative(-5); // return -5
makeNegative(0); // return 0
makeNegative(0.12); // return -0.12


👉 @frontendInterview
Напишите функцию сложения вида add(num1)(num2)

Решение кроется в переопределении метода 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).

Ответ:
 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 июня🎁

Начните учиться прямо сейчас, двигайтесь в комфортном темпе и сразу применяйте новые навыки в своих проектах.
Какое значение примет result?
Anonymous Quiz
44%
false
56%
true
Объедините два массива с вложенностью

Задачу можно решать различными способами. Обычно хотят узнать знает ли собеседуемый такой метод как 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%. Кстати, на сайте можно пройти бесплатную демоверсию.
Чему равен 1vmin, если ширина вьюпорта 1000px, а высота 800px.
Anonymous Quiz
21%
80px
27%
10px
41%
8px
11%
100px
Сила jаvanoscript: 68 способов эффективного использования JS

Эта книга поможет вам освоить всю мощь языка программирования jаvanoscript и научит применять его максимально эффективно. Автор описывает внутреннюю работу языка на понятных практических примерах, которые помогут как начинающим программистам, так и опытным разработчикам повысить уровень понимания jаvanoscript и существенно обогатить опыт его применения в своей работе.

👉 @frontendInterview
The takeWhile Function

Создайте функцию, которая принимает массив значений и предикат, который будет проверять каждое из значений. Функция должна проверять каждое значение последовательно, пока результат равен 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
Каково значение свойства display у HTML элемента noscript?
Anonymous Quiz
17%
initial
6%
inline-block
50%
none
18%
block
9%
inline
В чем смысл и польза указания use strict в начале JavaScript-файла?

Команда use strict включает так называемый строгий режим. В этом режиме предупреждения становятся ошибками, что помогает в написании более чистого и безопасного кода, менее уязвимого к ошибкам в продакшене.

👉 @frontendInterview
Как можно задать стили только первым двум элементам li?
Anonymous Quiz
3%
li:last-child + li
60%
li:nth-child(-n+2)
37%
li:first-child+li