frontendinterview | Unsorted

Telegram-канал frontendinterview - Frontend Interview - собеседования по Javascript / Html / Css

12730

Канал для подготовки к собеседованиям по фронтенду Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront Менеджер по рекламе: @Spiral_Yuri Купить рекламу: https://telega.in/c/frontendinterview Номер заявления в РКН № 4959045795

Subscribe to a channel

Frontend Interview - собеседования по Javascript / Html / Css

JavaScript с нуля

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

👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Что-то на супержизненном?

👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Борьба с перерендерами в React

На тему мемоизации написано довольно много статей, и все они хорошо раскрывают суть. Но мне часто не хватало шпаргалки, которую можно отправить на вопрос «А как мемоизировать?». В статье речь пойдет исключительно о функциональных компонентах.

👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Как подключить CSS стили?

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

Внешний файл со стилями
При этом подходе CSS пишется в отдельном файле с расширением .css. Такие стили ещё называют связанными.

Для связывания страницы с файлом стилей используется тег <link> внутри <head>:
<head>
<link rel="stylesheet" href="main.css">
</head>

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

Встроенные стили
Вариант, когда CSS-свойства описываются в самом HTML-документе внутри тега <style> в шапке страницы:
<head>
<style>
h1 {
color: tomato;
}
</style>
</head>

Преимущества
- Поскольку код находится непосредственно в HTML-файле, браузер не загружает сторонние файлы. Это позволяет отрисовать страницу быстрее.
- Встроенные стили работают изолированно и применяются непосредственно к странице, на которой прописаны.

Недостатки
- С каждым новым правилом вес HTML-файла будет увеличиваться и страница будет загружаться медленнее.
- Со временем такие же стили могут понадобиться на других страницах, и CSS придётся дублировать.

Инлайн-стили
В этом варианте элементам, которые необходимо оформить, добавляется атрибут style. Значением этого атрибута могут быть свойства и значения CSS, которые и применятся к элементу:
<h1 style="сolor: yellow; margin: 10px 20px">Заголовок</h1>

Преимущества
- Как и со встроенными стилями, браузеру не нужно запрашивать файл, что ускоряет рендеринг.
- Не нужно писать селекторы, потому что стили применяются сразу к нужному элементу.

Однако несмотря на преимущества, инлайн-стили — это антипаттерн. Недостатков у этого подхода слишком много.

👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Что такое псевдоэлемент в CSS?

Псевдоэлементы — это специальный синтаксис, позволяющий стилизовать определенные части элемента или добавлять специальные элементы (как бы "элементы-призраки"), не создавая для этого дополнительные теги в HTML. Псевдоэлементы предоставляют удобный способ внесения изменений в структуру документа, не затрагивая HTML.

Синтаксис:
Начинается с двойного двоеточия (::), за которым следует название псевдоэлемента. Например, ::before или ::after.

Распространенные псевдоэлементы:
- ::before и ::after: Позволяют вставлять содержимое до или после содержимого выбранного элемента соответственно. Очень часто используются для добавления декоративных элементов.

    p::before {
content: "«";
color: blue;
}

p::after {
content: "»";
color: blue;
}


-::first-line: Применяет стили к первой строке текста в блочном элементе.
    p::first-line {
font-weight: bold;
}


- ::first-letter: Применяет стили к первой букве текста в блочном элементе.
    p::first-letter {
font-size: 200%;
}


- ::selection: Применяет стили к части текста, которую пользователь выделил.
    p::selection {
background: yellow;
}


Особенности работы:

- Работают как часть документа, но на самом деле не существуют в DOM-дереве, а создаются стилями.
- Чтобы псевдоэлементы ::before и ::after отображались, необходимо задать свойство content, даже если оно пустое (content: "";).
- Могут быть стилизованы почти так же, как обычные элементы, но есть некоторые ограничения, например, связанные с взаимодействием с JavaScript.

👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Greatest common divisor

Найдите наибольший общий делитель двух целых положительных чисел. Целые числа могут быть большими, поэтому необходимо найти умное решение.

Исходные данные x и y всегда больше или равны 1, поэтому наибольший общий делитель всегда будет целым числом, которое также больше или равно 1.

👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Что такое amp страницы?

AMP (Accelerated Mobile Pages) — это технология от Google, которая позволяет создавать очень быстрые и легкие веб-страницы для мобильных устройств. AMP-страницы загружаются почти мгновенно, потому что:
Используют оптимизированный HTML (AMP HTML)
Ограничивают использование JavaScript
Подключают Google AMP Cache для мгновенной загрузки

Зачем нужны AMP?
- Ускоряют загрузку страниц → полезно для мобильных пользователей
- Улучшают SEO → Google любит быстрые сайты
- Увеличивают CTR → в поиске AMP-страницы помечены ⚡️ и привлекают внимание
- Снижают нагрузку на сервер

Как создать AMP-страницу?
AMP-страница – это обычный HTML, но с ограничениями и своими тегами.

<!DOCTYPE html>
<html ⚡️ lang="ru">
<head>
<meta charset="UTF-8">
<title>AMP Страница</title>
<link rel="canonical" href="https://example.com/normal-page.html">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script async src="https://cdn.ampproject.org/v0.js"></script>
<style amp-boilerplate>
body { visibility: hidden; }
</style>
<noscript>
<style amp-boilerplate>
body { visibility: visible; }
</style>
</noscript>
</head>
<body>
<h1>Привет, это AMP!</h1>
<amp-img src="image.jpg" width="600" height="400" layout="responsive"></amp-img>
</body>
</html>


👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Моем Код с Мылом

Эта статья – краткий обзор первой половины книги Чистый код.
Разберём ключевые принципы именования переменных, проектирования функций и других аспектов, чтобы писать код, который будет понятен вам и вашей команде спустя годы.

Основные тезисы:
- Думайте над именами
- Не делайте код слишком чистым
- Следуйте стандартам языка или вашей команды
- Программист не должен заниматься форматированием

👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Как запретить выделять текст пользователю мышкой?

Свойство user-select определяет, может ли пользователь выбрать текст в элементе, для которого это свойство задано.

Пример
Добавим к тексту user-select, чтобы он не выделялся мышкой.

p {
user-select: none;
}


Возможные значения
- none — текст внутри элемента нельзя выделить и, как следствие, скопировать.
- text — текст может быть выделен.
- all — весь текст, включая текст в дочерних элементах, может быть выделен.
- contain — может быть выделен только текст элемента, которому задано свойство.
- auto — значение вычисляется в зависимости от элемента:
- для редактируемого элемента (атрибут contenteditable) значение будет contain;
- для псевдоэлементов ::before и ::after значение будет none;
- значения user-select: all и user-select: none наследуются от родителя.
- иначе значение будет text.

👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Прокачаем ваш frontend скилл с junior до middle

Научим писать код, который не стыдно показать

Первые 7 дней бесплатно. Попробуй!


Узнать больше

#реклама 16+
ykul.ru

О рекламодателе

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Новые возможности JavaScript

Руководство по JavaScript для тех, кто хочет кодить быстро и эффективно.
«Новые возможности JavaScript» — это сборник правил написания кода на современном языке JavaScript. На наглядных примерах автор объясняет, как работают последние версии JS, какие приемы в нем можно использовать, чтобы сделать код коротким и чистым, а каких ошибок лучше избегать, чтобы не было багов.

👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Можете ли вы описать основное различие между методами forEach и map?

Чтобы понять разницу между ними, давайте посмотрим, что делает каждая функция.

forEach
- Перебирает элементы в массиве.
- Вызывает callback-функцию для каждого элемента.
- Не возвращает значение.

 const a = [1, 2, 3];
const doubled = a.forEach((num, index) => {
// Делаем что-либо с num и/или index.
});
// doubled = undefined


map
- Перебирает элементы в массиве.
- “Сопоставляет” каждый элемент с новым элементом, вызывая функцию для каждого элемента, создавая в результате новый массив.
 const a = [1, 2, 3];
const doubled = a.map(num => {
return num * 2;
});
// doubled = [2, 4, 6]


Основное различие между .forEach и .map() состоит в том, что .map() возвращает новый массив. Если вам нужен результат, но вы не хотите изменять исходный массив, .map() — очевидный выбор. Если вам просто нужно перебрать массив, то стоит воспользоваться forEach.

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Работа с атрибутами HTML элементов в JavaScript

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

👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Можно ли увеличить или уменьшить поле ввода? Управляем этим через стили.

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

Часто используется для <textarea>, но можно применить к любому элементу, кроме:

- строчных (inline) элементов;
- блочных (block), для которых задано свойство overflow со значением visible (является значением по умолчанию для большинства элементов).

По умолчанию поле ввода <textarea> может изменять свой размер, если потянуть за нижний правый угол. Если вы хотите запретить изменение размеров текстовой области, вы должны явно указать значение свойства resize как none.

Как пишется
- none — размеры изменить нельзя (значение по умолчанию).
- both — размеры можно изменять по горизонтали и вертикали.
- horizontal — размер можно изменять по горизонтали.
- vertical — размер можно изменять по вертикали.

Экспериментальные значения:
- block — размер можно изменять в блочном измерении элемента.
- inline — размер можно изменять в строковом измерении элемента.
Блочное или строчное измерение элемента зависит от направления текста, задаваемого свойствами writing-mode и direction.

По умолчанию поддерживается в Firefox и Safari. В браузерах Chrome и Edge необходимо включить флаг Experimental Web Platform features. Более подробную информацию можно узнать на caniuse.

👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Mobile-first vs Desktop-first

Mobile-first и Desktop-first — это подходы в веб-дизайне и разработке, которые определяют, для каких устройств начинается проектирование дизайна и разработка в первую очередь.

Mobile-first подход получил широкое распространение в современном вебе благодаря возросшей популярности мобильных устройств. Однако есть типы задач (CRM / ERP системы, дашборды, эффектные имидживые проекты), для решения которых Desktop-first остаётся более подходящим.

Mobile-first
Минималистичные интерфейсы
Важно понимать, что в данном случае термин «минималистичные интерфейсы» не означает, что функциональность интерфейсов урезана. Минималистичность здесь — следствие небольшого размера экрана. В первую очередь создается UI & UX (англ. User Interface & User Experience, «пользовательский интерфейс и пользовательский опыт») именно для таких устройств. Далее, на основе мобильных интерфейсов, дорабатывается UI & UX для более широких экранов.

Мобильные сценарии использования
Чтобы пользователю было комфортнее работать с мобильным интерфейсом, при его разработке учитывают:

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

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

SEO
Google преимущественно использует мобильную версию сайта для индексации (mobile-first-indexing).

Desktop-first
Богатая функциональность
Благодаря большому размеру экрана, как правило, не возникает проблем с расположением элементов интерфейса, которые предлагают расширенную функциональность. Например, интерфейс аналитического дашборда может вмещать редактируемые таблицы с большим количеством столбцов.

Десктопные сценарии использования
С десктопным интерфейсом пользователь взаимодействует с помощью клавиатуры и мыши. Курсор менее требователен к области клика, чем палец, зато он всегда на экране: хорошей практикой будет следить, чтобы контент не появлялся и не пропадал с экрана при малейшем сдвиге мыши. Клавиатура в пользовательском интерфейсе может быть представлена (в виде подсказок о горячих клавишах) или нет, но в любом случае интерфейс должен на неё отзываться: например, отправится ли форма при нажатии на «Enter»?

👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Курс "Дизайн карточек для WB и Ozon". Бесплатно и с нуля

Дизайнер карточек для маркетплейсов — востребованная и доходная профессия 💰
Научись ей бесплатно!

- Бесплатный доступ к курсу
- Разбор ДЗ от наставника
- Мощные кейсы в портфолио

Узнать больше

#реклама 16+
yudaevschool24.online

О рекламодателе

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Срочно требуются Веб-Дизайнеры в Figma. Обучим с нуля.

Онлайн-программа с наставником и чатом.

Осторожно! 80% практики.

По результату обучения у вас будет портфолио из нескольких работ.
Сертификат о прохождении курса.
Возможность пройти полное обучение и получить гарантированное трудоустройство!

Учитесь дизайну у профессионалов.

Переходи по кнопки: "Узнать больше" и начинай свое обучение.
Доступ 0 руб.

Узнать больше

#реклама 16+
yudaevschool24.online

О рекламодателе

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

В канале Selectel Newsfeed новые бесплатные курсы!

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

Вступайте в сообщество IT-специалистов в Telegram от Selectel и развивайте новые навыки📚

Смотреть

#реклама 16+
О рекламодателе

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

JavaScript from Frontend to Backend: Learn full stack JavaScript development using the MEVN stack with quick and easy steps

Книга начинается с основ переменных и объектов в JavaScript, а затем быстро переходит к созданию компонентов на стороне клиента с помощью Vue.js и простого приложения для управления списками. После этого внимание переключается на серверную сторону и Node.js, где вы рассмотрите модель MVC и изучите модуль Express. После того как вы освоите серверную и клиентскую части, останется только база данных. Вы познакомитесь с MongoDB и модулем Mongoose. В последней главе этого быстрого руководства вы объедините все эти части, чтобы интегрировать приложение Vue.js в сервер Node.js, используя Express для структурирования серверного кода и MongoDB для хранения информации.

👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Когда исправляешь опечатку в комменте в большом пулл-реквесте:

👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Курс "Дизайн карточек для WB и Ozon". Бесплатно и с нуля

Дизайнер карточек для маркетплейсов — востребованная и доходная профессия 💰
Научись ей бесплатно!

- Бесплатный доступ к курсу
- Разбор ДЗ от наставника
- Мощные кейсы в портфолио

Узнать больше

#реклама 16+
yudaevschool24.online

О рекламодателе

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

IT-аутстаффинг

Ежедневно публикуем запросы на аутстаффинг разработчиков Java, Python, Flutter, C#, 1С и других ИТ-специалистов. Есть свой резерв, готовый прямо сейчас влиться в ваш проект. Посмотрите в канале наших свободных разработчиков.

Подписаться

#реклама
О рекламодателе

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Как работает реактивность в vue.Js ?

Реактивность — это одна из ключевых характеристик фреймворка, которая позволяет автоматически обновлять пользовательский интерфейс при изменении состояния. Вот как это работает:

Реактивные данные:
Vue использует объекты с реактивными свойствами, чтобы отслеживать изменения. Когда данные изменяются, Vue автоматически обновляет связанные с ними компоненты.

Объект Vue:
При создании нового экземпляра Vue, он делает все данные, определенные в опции data, реактивными.

      var vm = new Vue({
data: {
message: 'Hello Vue!'
}
});


Реактивность через геттеры и сеттеры:

Vue использует JavaScript Proxy (или Object.defineProperty в более старых версиях) для создания реактивных свойств. Каждый раз, когда свойство считывается, вызывается геттер, и когда свойство изменяется, вызывается сеттер.

Пример реактивности

var vm = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
});


При изменении vm.message интерфейс автоматически обновится:
vm.message = 'Hello World!';


Как это работает "под капотом"

1. Инициализация:
При инициализации Vue.js обходит все свойства объекта data и преобразует их в геттеры и сеттеры с помощью Object.defineProperty. Этот процесс называется обсервацией.

2. Детекторы изменений (Observers):
Каждый раз, когда создается реактивное свойство, создается объект наблюдателя (Observer), который следит за изменениями этого свойства.

3. Депенденси трекинг (Dependency Tracking):
Во время рендера компонента, Vue регистрирует все зависимости (реактивные свойства), которые используются. Это означает, что Vue "запоминает", какие свойства нужно отслеживать для каждого компонента.

4. Реактивное обновление:
Когда реактивное свойство изменяется, Vue уведомляет все компоненты, которые зависят от этого свойства, и они автоматически перерисовываются.

Реактивные системы в действиях
new Vue({
el: '#app',
data: {
a: 1,
b: 2
},
computed: {
sum() {
return this.a + this.b;
}
},
watch: {
a(newValue, oldValue) {
console.log(`a изменилось с ${oldValue} на ${newValue}`);
}
}
});


Вычисляемые свойства: sum автоматически пересчитывается, когда a или b изменяются.
Наблюдатели (watchers): Реагируют на изменения данных и могут выполнять побочные эффекты.

Преимущества
1. Простота использования: Можно сосредоточиться на логике приложения, а не на обновлении DOM.
2. Высокая производительность: Vue эффективно отслеживает изменения и обновляет только те части DOM, которые изменились.
3. Поддержка сложных приложений: Реактивная система Vue легко масштабируется для больших и сложных приложений.

👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Reverse words

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

Примеры
:

"This is an example!" ==> "sihT si na !elpmaxe"
"double spaces" ==> "elbuod secaps"


👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Живи и зарабатывай в Крыму 2 500 000 рублей ежегодно!

👌Поможем подобрать лучшие апартаменты Крыма с собственным пляжем, видом на море и горы

😊Живите сами, отдыхайте здесь с семьей или сдавайте и получайте пассивный доход 2 500 000 рублей в год

-Апартаменты на любой вкус а также под ваш бюджет

-Акции от застройщиков: рассрочка без переплат, ежемесячный платеж всего 50 тысяч рублей

-Старт продаж!

-Апартаменты с видом на море или горы - под ваш вкус!

🏠Мы предлагаем несколько способов покупки а также услуги по подбору недвижимости с помощью: ипотеки, рассрочки, дистанционной покупки

✅Узнайте подробнее и получите вкусное предложение

Узнать больше

Проектная декларация на сайте https://наш.дом.рф/

#реклама
mrqz.me

О рекламодателе

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Это я через 5 лет «вышел погулять» после тяжёлого трудового дня

👉 @frontendInterview

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

Бесплатный курс по дизайну в FIGMA

Онлайн-программа с наставником и чатом.

Осторожно! 80% практики.

По результату обучения у вас будет портфолио из нескольких работ.
Сертификат о прохождении курса.
Возможность пройти полное обучение и получить гарантированное трудоустройство!

Учитесь дизайну у профессионалов.

Переходи по кнопки: "Узнать больше" и начинай свое обучение.
Доступ 0 руб.

Узнать больше

#реклама 16+
yudaevschool24.online

О рекламодателе

Читать полностью…

Frontend Interview - собеседования по Javascript / Html / Css

📕Открытый урок по манипуляции с HTML и CSS с помощью JavaScript для начинающих и опытных разработчиков JavaScript, frontend и веб разработчикам

На открытом уроке 19 февраля в 20:00 мск мы узнаем всё об основах динамичного взаимодействия с элементами страницы.

📗В результате вы:
- Узнаете, как использовать JavaScript для взаимодействия с HTML и CSS, включая управление элементами страницы через простые клики и другие события;
- Изучите основные методы изменения стилей и классов, чтобы делать интерфейсы более динамичными;
- Освоете практические навыки для применения в проектах, позволяя создавать страницы с интерактивными элементами, которые реагируют на действия пользователей.

👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/eAIt/

📙 Все участники открытого урока получат скидку на курс "Fullstack Developer"

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 erid 2SDnjeHiuvk

Читать полностью…
Subscribe to a channel