Канал для подготовки к собеседованиям по фронтенду Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront Менеджер по рекламе: @Spiral_Yuri Купить рекламу: https://telega.in/c/frontendinterview Номер заявления в РКН № 4959045795
JavaScript с нуля
JavaScript еще никогда не был так прост! Вы узнаете все возможности языка программирования без общих фраз и неясных терминов. Подробные примеры, иллюстрации и схемы будут понятны даже новичку. Легкая подача информации и живой юмор автора превратят нудное заучивание в занимательную практику по написанию кода. Дойдя до последней главы, вы настолько прокачаете свои навыки, что сможете решить практически любую задачу, будь то простое перемещение элементов на странице или даже собственная браузерная игра.
👉 @frontendInterview
Что-то на супержизненном?
👉 @frontendInterview
Борьба с перерендерами в React
На тему мемоизации написано довольно много статей, и все они хорошо раскрывают суть. Но мне часто не хватало шпаргалки, которую можно отправить на вопрос «А как мемоизировать?». В статье речь пойдет исключительно о функциональных компонентах.
👉 @frontendInterview
Как подключить 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
Что такое псевдоэлемент в 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;
}
::before
и ::after
отображались, необходимо задать свойство content
, даже если оно пустое (content: "";
).Greatest common divisor
Найдите наибольший общий делитель двух целых положительных чисел. Целые числа могут быть большими, поэтому необходимо найти умное решение.
Исходные данные x и y всегда больше или равны 1, поэтому наибольший общий делитель всегда будет целым числом, которое также больше или равно 1.
👉 @frontendInterview
Что такое 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
Как запретить выделять текст пользователю мышкой?
Свойство user-select определяет, может ли пользователь выбрать текст в элементе, для которого это свойство задано.
Пример
Добавим к тексту user-select, чтобы он не выделялся мышкой.
p {
user-select: none;
}
Прокачаем ваш frontend скилл с junior до middle
Научим писать код, который не стыдно показать
Первые 7 дней бесплатно. Попробуй!
Узнать больше
#реклама 16+
ykul.ru
О рекламодателе
Новые возможности JavaScript
Руководство по JavaScript для тех, кто хочет кодить быстро и эффективно.
«Новые возможности JavaScript» — это сборник правил написания кода на современном языке JavaScript. На наглядных примерах автор объясняет, как работают последние версии JS, какие приемы в нем можно использовать, чтобы сделать код коротким и чистым, а каких ошибок лучше избегать, чтобы не было багов.
👉 @frontendInterview
Можете ли вы описать основное различие между методами forEach и map?
Чтобы понять разницу между ними, давайте посмотрим, что делает каждая функция.
forEach
- Перебирает элементы в массиве.
- Вызывает callback-функцию для каждого элемента.
- Не возвращает значение.
const a = [1, 2, 3];
const doubled = a.forEach((num, index) => {
// Делаем что-либо с num и/или index.
});
// doubled = undefined
const a = [1, 2, 3];
const doubled = a.map(num => {
return num * 2;
});
// doubled = [2, 4, 6]
Работа с атрибутами HTML элементов в JavaScript
В этой статье разберемся как манипулировать HTML элементами, после того как они будут найдены через JS. Важной частью этой работы, является взаимодействие с атрибутами HTML элементов.
👉 @frontendInterview
Можно ли увеличить или уменьшить поле ввода? Управляем этим через стили.
Свойство 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
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
Курс "Дизайн карточек для WB и Ozon". Бесплатно и с нуля
Дизайнер карточек для маркетплейсов — востребованная и доходная профессия 💰
Научись ей бесплатно!
- Бесплатный доступ к курсу
- Разбор ДЗ от наставника
- Мощные кейсы в портфолио
Узнать больше
#реклама 16+
yudaevschool24.online
О рекламодателе
Срочно требуются Веб-Дизайнеры в Figma. Обучим с нуля.
Онлайн-программа с наставником и чатом.
Осторожно! 80% практики.
По результату обучения у вас будет портфолио из нескольких работ.
Сертификат о прохождении курса.
Возможность пройти полное обучение и получить гарантированное трудоустройство!
Учитесь дизайну у профессионалов.
Переходи по кнопки: "Узнать больше" и начинай свое обучение.
Доступ 0 руб.
Узнать больше
#реклама 16+
yudaevschool24.online
О рекламодателе
В канале Selectel Newsfeed новые бесплатные курсы!
Наши бесплатные курсы для специалистов всех уровней помогут разобраться в темах быстро, структурно и последовательно.
Вступайте в сообщество IT-специалистов в Telegram от Selectel и развивайте новые навыки📚
Смотреть
#реклама 16+
О рекламодателе
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
Когда исправляешь опечатку в комменте в большом пулл-реквесте:
👉 @frontendInterview
Курс "Дизайн карточек для WB и Ozon". Бесплатно и с нуля
Дизайнер карточек для маркетплейсов — востребованная и доходная профессия 💰
Научись ей бесплатно!
- Бесплатный доступ к курсу
- Разбор ДЗ от наставника
- Мощные кейсы в портфолио
Узнать больше
#реклама 16+
yudaevschool24.online
О рекламодателе
IT-аутстаффинг
Ежедневно публикуем запросы на аутстаффинг разработчиков Java, Python, Flutter, C#, 1С и других ИТ-специалистов. Есть свой резерв, готовый прямо сейчас влиться в ваш проект. Посмотрите в канале наших свободных разработчиков.
Подписаться
#реклама
О рекламодателе
Как работает реактивность в vue.Js ?
Реактивность — это одна из ключевых характеристик фреймворка, которая позволяет автоматически обновлять пользовательский интерфейс при изменении состояния. Вот как это работает:
Реактивные данные:
Vue использует объекты с реактивными свойствами, чтобы отслеживать изменения. Когда данные изменяются, Vue автоматически обновляет связанные с ними компоненты.
Объект Vue:
При создании нового экземпляра Vue, он делает все данные, определенные в опции data
, реактивными.
var vm = new Vue({
data: {
message: 'Hello Vue!'
}
});
var vm = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
});
vm.message
интерфейс автоматически обновится:vm.message = 'Hello World!';
data
и преобразует их в геттеры и сеттеры с помощью Object.defineProperty
. Этот процесс называется обсервацией.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
изменяются.Reverse words
Выполните функцию, которая принимает строковый параметр и меняет местами каждое слово в строке. Все пробелы в строке должны быть сохранены.
Примеры:
"This is an example!" ==> "sihT si na !elpmaxe"
"double spaces" ==> "elbuod secaps"
Живи и зарабатывай в Крыму 2 500 000 рублей ежегодно!
👌Поможем подобрать лучшие апартаменты Крыма с собственным пляжем, видом на море и горы
😊Живите сами, отдыхайте здесь с семьей или сдавайте и получайте пассивный доход 2 500 000 рублей в год
-Апартаменты на любой вкус а также под ваш бюджет
-Акции от застройщиков: рассрочка без переплат, ежемесячный платеж всего 50 тысяч рублей
-Старт продаж!
-Апартаменты с видом на море или горы - под ваш вкус!
🏠Мы предлагаем несколько способов покупки а также услуги по подбору недвижимости с помощью: ипотеки, рассрочки, дистанционной покупки
✅Узнайте подробнее и получите вкусное предложение
Узнать больше
Проектная декларация на сайте https://наш.дом.рф/
#реклама
mrqz.me
О рекламодателе
Это я через 5 лет «вышел погулять» после тяжёлого трудового дня
👉 @frontendInterview
Бесплатный курс по дизайну в FIGMA
Онлайн-программа с наставником и чатом.
Осторожно! 80% практики.
По результату обучения у вас будет портфолио из нескольких работ.
Сертификат о прохождении курса.
Возможность пройти полное обучение и получить гарантированное трудоустройство!
Учитесь дизайну у профессионалов.
Переходи по кнопки: "Узнать больше" и начинай свое обучение.
Доступ 0 руб.
Узнать больше
#реклама 16+
yudaevschool24.online
О рекламодателе
📕Открытый урок по манипуляции с HTML и CSS с помощью JavaScript для начинающих и опытных разработчиков JavaScript, frontend и веб разработчикам
На открытом уроке 19 февраля в 20:00 мск мы узнаем всё об основах динамичного взаимодействия с элементами страницы.
📗В результате вы:
- Узнаете, как использовать JavaScript для взаимодействия с HTML и CSS, включая управление элементами страницы через простые клики и другие события;
- Изучите основные методы изменения стилей и классов, чтобы делать интерфейсы более динамичными;
- Освоете практические навыки для применения в проектах, позволяя создавать страницы с интерактивными элементами, которые реагируют на действия пользователей.
👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://otus.pw/eAIt/
📙 Все участники открытого урока получат скидку на курс "Fullstack Developer"
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 erid 2SDnjeHiuvk