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

👉 @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

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

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

Что происходит при схлопывании границ?

Это процесс в CSS, когда вертикальные внешние отступы (margins) двух или более блоков объединяются в один. Это поведение касается только вертикальных отступов (margin-top и margin-bottom) и не касается горизонтальных (margin-left и margin-right).

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

Как это работает?
Если у одного блока снизу есть margin-bottom, а у другого блока сверху есть margin-top, то итоговый отступ между этими блоками будет равен большему из двух значений, а не их сумме. Если у элемента задан margin-top и он находится первым в контейнере, его верхний отступ может схлопнуться с верхним отступом контейнера. Если у элемента установлен margin-bottom и он является последним в контейнере, его нижний отступ может схлопнуться с нижним отступом контейнера. В этом примере между блоками будет отступ не 50px (20px + 30px), а 30px, потому что сработает схлопывание границ и возьмется большее значение.

<!DOCTYPE html>
<html>
<head>
<style>
.block1 {
margin-bottom: 20px;
background-color: lightblue;
}
.block2 {
margin-top: 30px;
background-color: lightcoral;
}
</style>
</head>
<body>
<div class="block1">Блок 1</div>
<div class="block2">Блок 2</div>
</body>
</html>


Когда схлопывание границ не происходит
- Если элементы имеют display:flex или display:grid.
- Если между элементами есть элемент с padding или border.
- Если у одного из элементов установлено свойство overflow со значением отличным от visible.
- Если один из элементов плавающий (float).

👉 @frontendInterview

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

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

Credit Card Mask

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

Примеры (ввод --> вывод):

"4556364607935616" --> "############5616"
"64607935616" --> "#######5616"
"1" --> "1"
"" --> ""

// "What was the name of your first pet?"
"Skippy" --> "##ippy"
"Nananananananananananananananana Batman!" --> "####################################man!"


👉 @frontendInterview

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

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

Поменяй свою жизнь - будь программистом! Обучение с нуля

⚡Если ты устал от работы в офисе и хочешь поменять свою жизнь - тебе к нам! Мы научим тебя Java разработке, а также поможем найти первую работу в IT. Не упускай шанс поменять свою жизнь, приходи к нам на бесплатный урок, который состоится 15 февраля 2025г.. Каждому, кто будет с нами на уроке, мы подарим скидку 10% на обучение! Переходи в наш канал, чтобы записаться ✅

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

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

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

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

Будьте в центре цифровой повестки

Как технологии помогают бизнесу решать задачи в 2025 году? Что нового в цифровизации? Какие тренды нужно знать уже сегодня?

В телеграм-канале «Цифровизируй это» от VK Tech мы отвечаем на все эти вопросы. А еще делимся анонсами событий, которые нельзя пропустить:

✅ вебинары с разработчиками IT-решений,
✅ разборы ключевых кейсов,
✅ дискуссии о будущем цифровизации.

Подписывайтесь, чтобы не пропустить важное и оставаться на шаг впереди.

Подписаться

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

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

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

😡 Устал от нудных уроков на YouTube, где половина — вода?

Хватит это терпеть) Автор канала Формошлёп убрал воду и оставил только суть:

Мини-гайды по HTML, CSS и JavaScript, которые легко читать и сразу применять.
➧ Шпаргалки, лайфхаки и полезные советы с ноткой юмора.
➧ Всё чётко, лаконично и по делу.

Неважно, новичок ты или фронтендер на опыте — у нас всегда найдётся что-то полезное!

Присоединяйся: @frontbox будем вместе шлёпать формы и красить кнопки)

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

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

Ultimate Typescript Handbook: Build, scale and maintain Modern Web Applications with Typescript

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

👉 @frontendInterview

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

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

Для чего нужна методология в HTML и CSS?

Методология в HTML (и в веб-разработке в целом) нужна для организации и структурирования кода так, чтобы он был понятным, поддерживаемым и масштабируемым. Она помогает разработчикам работать в команде, избегать хаоса в проекте и ускоряет развитие продукта, делая код простым для чтения и изменения.

Понятность кода
Без единого подхода код может стать "кашей" из классов и тегов. Методология помогает дать элементы структуры, которые легко понять не только автору кода, но и другим разработчикам.

Снижение ошибок
Если есть четкие правила, уменьшается риск дублирования, неправильных имен или конфликтов стилей.

Упрощение масштабирования
В больших проектах количество HTML-структур растет, и без системного подхода будет сложно добавлять новые элементы, не нарушая старые.

Легкость сопровождения
С методологией легко найти нужные элементы и вносить изменения.

Примеры популярных методологий:

БЭМ (Блок, Элемент, Модификатор)
Одна из самых популярных методологий для HTML и CSS.
- Она предлагает структурировать классы так:
- Блок: независимый компонент (например, menu).
- Элемент: часть блока (например, menu__item).
- Модификатор: вариант блока или элемента (например, menu__item--active).

Пример кода

     <div class="menu">
<div class="menu__item menu__item--active">Главная</div>
<div class="menu__item">О нас</div>
<div class="menu__item">Контакты</div>
</div>


Atomic Design
Основана на создании интерфейсов из "атомов" (простейшие элементы, например, кнопки), "молекул" (комбинации атомов, например, форма) и "организмов" (сложные компоненты, например, шапка сайта).

Пример
     <!-- Атом -->
<button class="button">Клик</button>
<!-- Молекула -->
<div class="form">
<label class="form__label">Имя</label>
<input class="form__input" type="text">
</div>


SMACSS (Scalable and Modular Architecture for CSS)

Делит код на модули (например, глобальные стили, компоненты, утилиты) и предлагает поддерживать независимость и минимизацию дублирования кода.

👉 @frontendInterview

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