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
Как работает контекст выполнения (execution context) в JavaScript?

В JavaScript контекст выполнения - это абстрактное понятие, которое описывает окружение, в котором выполняется код. Каждый раз, когда функция вызывается, создается новый контекст выполнения. Он составляется из объектов переменных, которые доступны в текущем контексте и указывает на текущую позицию в коде, на котором мы находимся.

Контекст выполнения состоит из трех составляющих: переменных, области видимости и объекта this.
Область видимости - это определенная область, где переменные могут быть использованы, и включает в себя переменные, объявленные в этой области и вне ее.
Объект this определяет контекст, в котором код выполняется. В глобальном контексте this указывает на глобальный объект window.

Контекст выполнения играет важную роль в том, как JavaScript обрабатывает код и какие переменные и функции доступны в разных частях программы. Понимание работы контекста выполнения поможет вам писать более эффективный и понятный код.
👍172
Объекты. Стильное ООП

Хороший объектно-ориентированный код удобно читать, изменять и исправлять. Универсальные практики проектирования объектов, собранные в этой книге, позволят улучшить ваш стиль кодирования. Эти правила подойдут к любому объектно-ориентированному языку, они делают код максимально понятным и надежным, а также повышают производительность как индивидуальных разработчиков, так и команд.

👉 @frontendInterview
👍83
Простое сжатие

Вам дана строка, состоящая из повторяющихся символов. Создайте функцию, которая обработает эту строку и преобразует её в массив, состоящий из кортежей (число повторений, символ).

Примеры:
string1="aaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaa"
output1='[[26,"a"],[1,"b"],[18,"a"]]'

string="aaaaaaaabaaaa"
compressed=[[8,"a"],[1,"b"],[4,"a"]]


👉 @frontendInterview
Что такое деструктуризация объектов и массивов в JavaScript?

Деструктуризация объектов и массивов в JavaScript — это возможность извлекать значения из объектов и массивов, присваивая их переменным.

При работе с объектами, можно использовать синтаксис фигурных скобок, чтобы выделить только те свойства, которые нужны в данном контексте и присвоить их новым переменным. Например:
 const person = { name: 'John', age: 30, city: 'New York' };
const { name, age } = person;

В этом примере из объекта person извлекаются только свойства name и age и присваиваются переменным с теми же именами.

При работе с массивами, можно использовать синтаксис квадратных скобок, чтобы извлечь элементы массива в определенном порядке и присвоить их новым переменным. Например:
 const numbers = [1, 2, 3];
const [a, b, c] = numbers;

В этом примере первый элемент массива присваивается переменной a, второй - b, третий - c.

Деструктуризация предоставляет возможность более четко и компактно извлекать значения из объектов и массивов, упрощает их обработку и позволяет избежать лишнего кода.

👉 @frontendInterview
👍241
Какой метод массива возвращает новый массив, состоящий из элементов, прошедших проверку, заданную в функции?
Anonymous Quiz
18%
map()
72%
filter()
5%
reduce()
5%
forEach()
👍73
В JavaScript есть два типа данных: примитивы и объекты. Расскажите, как они отличаются друг от друга и почему это важно?

Примитивные типы данных в JavaScript (строки, числа, булевы значения, undefined и null) отличаются от объектов тем, что они хранятся в памяти как неизменяемые значения. То есть, если вы пытаетесь изменить значение переменной, содержащей примитивный тип данных, вы на самом деле создаете новое значение этого типа в памяти.

В отличие от примитивных типов данных, объекты являются изменяемыми значениями. Объекты хранятся в памяти как ссылки на место их расположения. Поэтому при изменении свойства объекта вы не создаете новое значение, а изменяете уже существующее.

Понимание разницы между примитивными типами данных и объектами в JavaScript является важным для разработки программ на JavaScript, поскольку это помогает оптимизировать использование памяти и избежать ошибок, связанных с неожиданной передачей ссылок на объекты в качестве аргументов в функции или при присваивании значений переменным. Кроме того, знание различий между примитивами и объектами помогает написать более безопасный и эффективный код.

👉 @frontendInterview
👍22👎61
Какой метод предназначен для проверки, содержится ли элемент в массиве?
Anonymous Quiz
32%
find()
7%
filter()
2%
reduce()
59%
includes()
👎16🔥14👍62😁2🤔1
🇬🇧Навык №1 в любом направлении IT — это английский!

Как пример ⬇️

✔️ Марат- работает UX/UI дизайнером, хочет выйти на зарубежный рынок, но знаний английского нет и единственное спасение переводчик. Он принимает решение учить английский язык и теперь работает с зарубежными клиентами,уверенно общается с рекрутами на английском языке,а построение предложений и применение лексики не кажутся трудными и нет больше страха ошибаться!

Второй пример ⬇️

✔️Милана - работает тестировщиком. Всего за 12 занятий она забыла что такое переводчик в работе . Выступает на крупных международных конференциях ,общается с иностранными клиентами и ведет всю документацию только на английском языке!

✔️Если вы также желаете стать крутым специалистом на международном рынке,то рекомендую вам подписаться на
канал Анастастии, преподавателя по английскому языку и владелицы онлайн — школы Air.English

📎Вы научитесь обходиться без переводчика
📎Сможете построить карьеру в международной компании
📎Начнете работать с иностранными заказчиками⬇️

Подписывайтесь на канал Насти
и получайте работу мечты благодаря английскому языку уже в ближайшее время 💓

https://news.1rj.ru/str/+VqDFFiOdUddkYzVi
👎7👍41
Какие основные приемы оптимизации производительности JavaScript вы используете в своей работе?

Все зависит от конкретной задачи и контекста работы.
Некоторые приемы, которые я использую для оптимизации производительности JavaScript в своей работе, включают использование локальных переменных, избегание глубокой вложенности циклов и условий, а также использование декларативного программирования вместо императивного.

Кроме того, я стараюсь минимизировать количество запросов к серверу и избегать использования синхронных запросов, так как это может приводить к замедлению работы приложения. Также я использую различные инструменты для профилирования производительности, такие как Chrome DevTools или Firebug, чтобы найти и исправить узкие места в коде.

👉 @frontendInterview
👍9😁53🤔1
Docker Compose для разработчика: Упростите разработку и оркестрацию многоконтейнерных приложений

Разработка программного обеспечения становится все сложнее из-за использования различных инструментов. Приложения приходится упаковывать вместе с программными компонентами, чтобы упростить их работу, но это усложняет их запуск. С помощью Docker Compose можно всего одной командой настроить приложение и необходимые зависимости. Вы познакомитесь с основами томов и сетей Docker, с командами Compose, их назначением и вариантами использования. Настроите базу данных для повседневной работы, доступную через сеть Docker, установите связь между микросервисами.

👉 @frontendInterview
👍2
Создание номера телефона

Создайте функцию, которая принимает массив из 10 чисел и возвращает строку в виде номера телефона, составленного из этих чисел.

Пример:
createPhoneNumber([1, 2, 3, 4, 5, 6, 7, 8, 9, 0])
// => returns "(123) 456-7890"


👉 @frontendInterview
👍101
Какие паттерны в React нужно знать JS-разработчику?

✔️Разберем основные паттерны на открытом уроке 16 мая в 20:00 мск в OTUS. Занятие пройдет в рамках онлайн-курса «React.js Developer» в OTUS. На занятии мы также применим несколько часто встречающихся паттернов на практике. Больше навыков работы с React.js вы сможете получить на курсе.

Хороший разработчик всегда думает о качестве и удобстве использования кода, особенно при написании библиотек компонентов. Сообщество React разработало несколько классных паттернов, которые помогут создать идеальные компоненты с лучшей контролируемостью и расширяемостью.

✍️Для участия пройдите вступительный тест https://otus.pw/Hnm0/

Курс доступен в рассрочку.

Нативная интеграция. Информация о продукте
www.otus.ru
👎7
Как создать анимированный градиентный фон на сайте при помощи CSS?

Для создания анимированного градиентного фона на сайте при помощи CSS можно использовать свойство background и задать несколько градиентов в CSS. Например, можно задать два градиента и использовать анимацию для их плавного перехода друг в друга. Ниже приведен пример CSS кода:

 background: linear-gradient(to right, #000000, #ffffff), linear-gradient(to right, #ffffff, #000000);
background-size: 200% 100%;
background-position: left bottom;
animation: gradient 10s ease infinite;

@keyframes gradient {
0% {
background-position: left bottom;
}
100% {
background-position: right bottom;
}
}


В этом примере мы задали два линейных градиента, которые идут друг за другом. Затем мы установили размер фона в 200% и позицию на левой стороне нижнего края. Далее мы задали анимацию gradient, которая будет длиться 10 секунд, иметь функцию плавности ease и будет повторяться бесконечно. Внутри анимации мы задали два ключевых кадра: 0%, где позиция фона находится на левой стороне нижнего края, и 100%, где позиция фона находится на правой стороне нижнего края.

👉 @frontendInterview
👍9🔥42🤔2👏1
Какие методы можно использовать для центрирования элементов в CSS?
Anonymous Quiz
21%
text-align
8%
margin
1%
transform
7%
flexbox
2%
grid
61%
Все вышеперечисленные методы
👍7👎54