Frontend Interview - собеседования по Javascript / Html / Css
11.9K subscribers
2.07K photos
111 videos
313 files
511 links
Канал для подготовки к собеседованиям по фронтенду

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

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

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

Напишите функцию, которая принимает массив чисел и делает его копию.

Обратите внимание, что у вас могут возникнуть проблемы, если вы не возвращаете фактическую копию, элемент за элементом, а только указатель или псевдоним для существующего массива.

Пример:
t = [1, 2, 3, 4]
tCopy = copyList(t)
t[1] += 5
t = [1, 7, 3, 4]
tCopy = [1, 2, 3, 4]


👉 @frontendInterview
2🤔2
.forms

forms — это поле объекта document. Оно хранит коллекцию всех элементов <form>, которые есть на текущей странице.
Коллекция доступна только для чтения.

Для примера создадим три формы на одной странице: форму для применения промокода, форму с полем для подписки на рассылку, и форму авторизации с помощью номера телефона.

При обращении к свойству forms мы получим живую коллекцию HTMLCollection, которая очень напоминает массив, но позволяет также обращаться к элементам по их имени или идентификатору.

Формы, у которых указаны атрибуты id или name, можно получить по значениям этих атрибутов. В остальных случаях получить форму можно по индексу, который совпадает с порядком описания форм на странице.

Доступ к формам
Первая форма в примере выше не имеет атрибутов. Единственный способ обращения к ней — через её индекс в коллекции:
 document.forms[0]


У второй формы задан атрибут id, а значит, обращаться можно и по значению атрибута, и по индексу:
 document.forms['subscriptionFormId']
document.forms.subscriptionFormId


Третья форма содержит как атрибут id, так и name. У нас появляется возможность получить форму ещё и по имени, указанному в атрибуте name:
 document.forms['loginFormName']
document.forms.loginFormName


👉 @frontendInterview
🔥8👍31
Плиточная раскладка

Плиточная раскладка — это метод компоновки, при котором блоки по одной из осей вписываются в стандартную сетку (занимают определённое количество колонок или строк), а по другой оси располагаются так, чтобы не оставалось лишнего пространства, как бы прижимаются вплотную друг к другу.

📌Самый известный пример такой раскладки — галерея изображений в Pinterest.

В этом рецепте приводится пример реализации такой раскладки при помощи grid-template-* со значением masonry, а также другая реализация на чистом CSS.

👉 @frontendInterview
🔥4
Стресс на работе

Стресс — неотъемлемая часть нашей жизни и способ адаптироваться к меняющейся реальности. Его не избежать, да и не нужно этого делать. Он может быть «плохим» или «хорошим» , но его действие на организм человека будет одинаковым.

В статье рассматриваются разные виды стресса и даются советы, как с ними справляться.

👉 @frontendInterview
👍1
Какой CSS псевдокласс используется для выбора пустых элементов?
Anonymous Quiz
9%
:none
85%
:empty
5%
:hidden
2%
:visible
👍7👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Смертельный номер: айтишник фиксит баг на проде.

👉 @frontendInterview
👍82🔥2
Этот пост написан человеческим интеллектом специально для тех, кто хочет разрабатывать искусственный 🧠

А ещё — создавать крутые цифровые продукты, которыми пользуются миллионы людей, придумывать и реализовывать самые смелые идеи и работать в команде (таких же устремлённых в будущее) единомышленников.

Если ты ищешь IT-вакансию мечты — заходи на rabota.sber.ru 💻
👎5👍1
at()

Метод at() возвращает значение элемента массива по указанному индексу. Индекс может быть как положительным, так и отрицательным. Отрицательный индекс используется для отсчёта от последнего элемента массива.

Пример
Получим последний элемент массива:
const beatles = ['Джон', 'Пол', 'Джордж', 'Ринго']
console.log(beatles.at(3))
// Ринго


👉 @frontendInterview
👍16🤔6
Микросервисы и контейнеры Docker

В данной книге анализируется два самых горячих направления развития информационных технологий: микросервисы и контейнеры Docker. Вместе они способны обеспечить беспрецедентную гибкость в разработке и развертывании приложений, а также в их масштабировании. Вы узнаете, как использовать микросервисы и Docker для создания модульной архитектуры, увеличения производительности и надежности приложений, уменьшения времени до выхода на рынок, повторного использования кода и экспоненциального повышения эффективности в DevOps.

👉 @frontendInterview
1
Compose functions

Создайте функцию compose, которая принимает параметр и неограниченное количество функций, через которые пройдет этот параметр по очереди.
 compose(n, f1, f2, f3..., fn) // === fn(...(f3(f2(f1(n)))))



Примеры
var doubleTheValue = function(val) { return val * 2; }
var addOneToTheValue = function(val) { return val + 1; }

compose(5, doubleTheValue)
// should === 10

compose(5, doubleTheValue, addOneToTheValue)
// should === 11


👉 @frontendInterview
👍7👎2
.flatMap()

Метод flatMap() позволяет сформировать массив, применяя функцию к каждому элементу, затем уменьшает вложенность, делая этот массив плоским, и возвращает его.

Был добавлен в стандарте ES2019. Если вы поддерживаете браузеры, выпущенные раньше 2018 года, то вам понадобится полифил.

Пример
Представим, что у нас есть список заказов пользователей из которого мы хотим понять, какие товары заказывают:
const orders = [
{
id: 1,
products: [
{ name: 'Чизкейк', price: 1.99 },
{ name: 'Бисквит', price: 4.99 },
]
},
{
id: 2,
products: [
{ name: 'Шоколад', price: 5.59 },
{ name: 'Зефир', price: 8.99 },
]
}
]


Одним из решений будет сначала дважды вызвать метод map(), а затем сделать массив плоским с помощью метода flat()
Другое решение этой задачи — сразу вызвать метод flatMap() (ведь статья у нас именно про него):
orders.flatMap(
(order) => order.products.map(product => product.name)
)


Увидим что функция применилась, вложенность уменьшилась и мы получили только названия продуктов из массива products:
['Чизкейк', 'Бисквит', 'Шоколад', 'Зефир']

👉 @frontendInterview
🔥15👍2🤔1
Какая из перечисленных команд позволяет переименовать git ветку?
Anonymous Quiz
40%
git branch -m
12%
git checkout -b
37%
get branch -n
5%
git branch -d
7%
git branch -c
👍12
Асинхронная отправка формы

Возможно, вы хотите иметь больше контроля над вашей формой: показывать лоадер при отправке данных или обновить интерфейс ещё до получения ответа сервера. Если у формы есть атрибут method со значением get или post, то при отправке формы страница перезагрузится. В этом рецепте разберёмся, как отключить это дефолтное поведение и взять все в свои руки.

👉 @frontendInterview
Почему я отказался от GraphQL

GraphQL — невероятная технология, привлёкшая много внимания с тех пор, когда я начал в 2018 году использовать её в продакшене. После создания множества React SPA поверх путаницы нетипизированных JSON REST API технология GraphQL показалась мне глотком свежего воздуха. Я искренне поддерживал хайп вокруг GraphQL.

Однако с течением времени у меня появилась возможность выполнять развёртывания в окружениях, где больше важны не функциональные требования, а безопасность, производительность и удобство поддержки. Тогда и поменялась моя точка зрения. В этой статье я подробно расскажу о том, почему сегодня не рекомендовал бы GraphQL большинству, и поделюсь более совершенными альтернативами.

👉 @frontendInterview
👍2
Бесплатный практический вебинар: Профессия «Frontend-разработчик».

Когда: 18 июня в 19:00 по мск.

Погрузитесь в решение реальной задачи и напишите мини-игру, которая работает прямо в браузере.

Расскажем, что ждут работодатели от джунов, какие есть грейды во фронтенд-разработке и на какую зарплату рассчитывать в перспективе. Какие JS фреймворки учить: Vue, React, а может, Angular?

Задайте вопросы опытному спикеру,сделайте первый шаг в направлении новой профессии.

🎁 Всем, кто зарегистрировался - Гайд «Как заговорить на сленге IT-специалистов», а каждому участнику -  Карта компетенций начинающего Frontend-разработчика.
HTMLCollection и NodeList.

HTMLCollection и NodeList — это очень похожие на массив коллекции. Они хранят элементы веб-страницы (узлы DOM). NodeList может хранить любые типы узлов, а HTMLCollection — только узлы HTML элементов. К элементам коллекций можно обращаться по индексу, но у них нет привычных методов массива.

HTMLCollection возвращают методы getElementsByTagName и getElementsByClassName.

NodeList возвращают методы querySelectorAll и childNodes.

Полный список всех методов, возвращающих типы NodeList или HTMLCollection можно узнать в стандарте DOM.

👉 @frontendInterview
👍5