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
Что такое бандл (bundle) и как он используется в Frontend разработке?

Бандл - это артефакт, который создается сборщиком модулей (например, Webpack) и содержит весь JavaScript-код, требуемый для работы приложения. Он может включать в себя как код приложения, так и зависимости (библиотеки и фреймворки), необходимые для его функционирования. Бандл может быть в нескольких версиях для разных сред (например, разработка, тестирование, продакшн). Бандл позволяет сократить количество запросов к серверу, ускорить загрузку страницы и обеспечить лучшую производительность приложения. Кроме того, бандл можно оптимизировать для уменьшения его размера и ускорения загрузки, например, используя сжатие (compression) и минификацию (minification) кода.

👉 @frontendInterview
👍183👎2🥰2
Learn Three.js: Program 3D animations and visualizations for the web with JavaScript and WebGL, 4th Edition (2023)

Книга начинается с основных концепций и строительных блоков, используемых в Three.js, и помогает вам подробно изучить эти важные темы с помощью обширных примеров и образцов кода. Вы узнаете, как создавать реалистично выглядящие 3D-объекты с помощью текстур и материалов и как загружать модели из внешнего источника.

👉 @frontendInterview
👍101
Кодировщик дубликатов

Цель этой каты - преобразовать строку в новую, где каждый уникальный символ преобразуется в "(", а каждый дублирующийся в ")"

Примеры:
"din" => "((("
"recede" => "()()()"
"Success" => ")())())"
"(( @" => "))(("


👉 @frontendInterview
👎4👍31
Какое поведение будет у функции, определенной с помощью Function Declaration, если ее вызов расположен перед определением функции в коде?

В JavaScript функции, созданные с помощью Function Declaration, могут быть вызваны до их определения. Это называется "hoisting" или "поднятие". При поднятии переменные и функции объявляются на самом верхнем уровне области видимости. Таким образом, даже если вызов функции появляется до ее определения в коде, функция будет все равно выполнена успешно.

👉 @frontendInterview
👍23
Какое влияние на производительность сайта имеет использование большого количества внешних библиотек и как можно улучшить эту производительность?

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

- Уменьшить количество библиотек, которые загружаются на странице, выбирая только необходимые.
- Использовать максимально сжатые и минифицированные версии, чтобы уменьшить размер файлов.
- Использовать Content Delivery Network (CDN), чтобы использовать кэширование и уменьшить время загрузки на стороне клиента.
- Консолидировать все внешние библиотеки в одном файле, чтобы уменьшить количество запросов на сервер.
- Использовать асинхронную загрузку, чтобы ускорить загрузку на стороне клиента, таким образом, страница будет загружаться быстрее.

👉 @frontendInterview
👍152
Как работает контекст выполнения (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