Simple CSS selector comparison
Создайте функцию, которая сравнивает переданные CSS селекторы и возвращает самый специфичный.
Примеры:
👉 @frontendInterview
Создайте функцию, которая сравнивает переданные CSS селекторы и возвращает самый специфичный.
Примеры:
"body p", "div" ---> return "body p"
".class", "#id" ---> return "#id"
"div.big", ".small" ---> return "div.big"
".big", ".small" ---> return ".small" (because it appears later)
👉 @frontendInterview
Зачем нужен eslint?
ESLint – это инструмент для автоматического анализа и исправления кода в JavaScript и TypeScript. Он помогает разработчикам следовать единым стилям кодирования, находить ошибки и предотвращать баги ещё до запуска кода.
Почему ESLint полезен?
Без линтера код может быть неаккуратным и содержать ошибки, которые сложно отловить.
Проблемы без ESLint
- Разные стили написания кода
- Пропущенные точки с запятой или лишние пробелы
- Неиспользуемые переменные
- Ошибки, которые не выявляются во время компиляции (например,
**Решение с ESLint:**
- Автоматически находит ошибки и предупреждения
- Подсказывает лучшие практики
- Поддерживает кастомные правила
- Работает в IDE и CI/CD (автоматическая проверка)
Как ESLint работает?
ESLint использует набор правил, которые проверяют код. Если код нарушает эти правила – линтер выдаёт предупреждение или ошибку.
Пример исправленного кода (ESLint fix)
Как установить и настроить ESLint?
Установка
Создание конфига
Пример
Запуск проверки кода
Автоматическое исправление ошибок
👉 @frontendInterview
ESLint – это инструмент для автоматического анализа и исправления кода в JavaScript и TypeScript. Он помогает разработчикам следовать единым стилям кодирования, находить ошибки и предотвращать баги ещё до запуска кода.
Почему ESLint полезен?
Без линтера код может быть неаккуратным и содержать ошибки, которые сложно отловить.
Проблемы без ESLint
- Разные стили написания кода
- Пропущенные точки с запятой или лишние пробелы
- Неиспользуемые переменные
- Ошибки, которые не выявляются во время компиляции (например,
undefined
переменные) **Решение с ESLint:**
- Автоматически находит ошибки и предупреждения
- Подсказывает лучшие практики
- Поддерживает кастомные правила
- Работает в IDE и CI/CD (автоматическая проверка)
Как ESLint работает?
ESLint использует набор правил, которые проверяют код. Если код нарушает эти правила – линтер выдаёт предупреждение или ошибку.
function sayHello(name) {
console.log("Hello, " + name)
}
sayHello("John")
Пример исправленного кода (ESLint fix)
function sayHello(name) {
console.log(`Hello, ${name}`);
}
sayHello("John");
Как установить и настроить ESLint?
Установка
npm install eslint --save-dev
Создание конфига
npx eslint --init
Пример
.eslintrc.js
(настройки ESLint) module.exports = {
env: {
browser: true,
es6: true,
},
extends: [
"eslint:recommended", // Базовые рекомендации
"plugin:vue/vue3-recommended" // Рекомендации для Vue
],
rules: {
"no-unused-vars": "warn", // Предупреждать о неиспользуемых переменных
"semi": ["error", "always"], // Обязательные точки с запятой
"quotes": ["error", "double"], // Только двойные кавычки
},
};
Запуск проверки кода
npx eslint myfile.js
Автоматическое исправление ошибок
npx eslint myfile.js --fix
👉 @frontendInterview
👍5
Какое CSS свойство нужно использовать, чтобы сделать текст элемента span подчеркнутым?
Anonymous Quiz
7%
text-lining
91%
text-decoration
2%
text-adornment
1%
text-attire
Как встроить содержимое внешнего сайта на свой?
<iframe> — это контейнер, который позволяет вставить любой HTML-документ из другого источника. Часто этот документ интерактивный — например, карта, видео или пост из соцсети.
Этот контейнер обычно называют фреймом. Внешний вид фрейма и его положение на странице можно задать через CSS.
Пример
С помощью такого нехитрого кода мы можем встроить карту размером 560 на 400 пикселей на любую страницу:
Часто сервисы, из которых мы хотим что-то встроить (карты, посты и тому подобное), сами могут сгенерировать вам <iframe>. Его останется только добавить в свой код.
👉 @frontendInterview
<iframe> — это контейнер, который позволяет вставить любой HTML-документ из другого источника. Часто этот документ интерактивный — например, карта, видео или пост из соцсети.
Этот контейнер обычно называют фреймом. Внешний вид фрейма и его положение на странице можно задать через CSS.
Пример
С помощью такого нехитрого кода мы можем встроить карту размером 560 на 400 пикселей на любую страницу:
<iframe
id="inlineFrameExample"
title="Inline Frame Map"
width="560"
height="400"
frameborder="1"
allowfullscreen="true"
src="https://yandex.ru/map-widget/v1/-/CBFkaYSE0A"
>
</iframe>
Часто сервисы, из которых мы хотим что-то встроить (карты, посты и тому подобное), сами могут сгенерировать вам <iframe>. Его останется только добавить в свой код.
👉 @frontendInterview
👍4
🧑🏻💻Хотите начать разрабатывать с Vue.js, но не знаете, с чего начать?
На открытом вебинаре 22 апреля в 20:00 мск мы расскажем вам о Vue.js 3. Вы увидите, как просто установить Vue, какие основные концепции нужно освоить и какие библиотеки вам понадобятся для старта. Убедитесь, что этот фреймворк проще, чем кажется, и намного мощнее, чем вы могли бы подумать!
После вебинара вы будете понимать, как применять Vue.js в своих проектах. Это простой, быстрый и эффективный фреймворк для вашего будущего в веб-разработке.
👉Регистрируйтесь прямо сейчас и получите скидку на большое обучение «Vue.js-разработчик»: hhttps://otus.pw/xI5x/?erid=2W5zFHhsSUG
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
На открытом вебинаре 22 апреля в 20:00 мск мы расскажем вам о Vue.js 3. Вы увидите, как просто установить Vue, какие основные концепции нужно освоить и какие библиотеки вам понадобятся для старта. Убедитесь, что этот фреймворк проще, чем кажется, и намного мощнее, чем вы могли бы подумать!
После вебинара вы будете понимать, как применять Vue.js в своих проектах. Это простой, быстрый и эффективный фреймворк для вашего будущего в веб-разработке.
👉Регистрируйтесь прямо сейчас и получите скидку на большое обучение «Vue.js-разработчик»: hhttps://otus.pw/xI5x/?erid=2W5zFHhsSUG
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
❤1
Мои 7 правил при собеседовании разработчиков
За последние несколько лет я перестроил свой процесс найма разработчиков, начал по-другому готовиться к собеседованиям и проверять нужные навыки. Как мне кажется, у меня получилось повысить свою продуктивность и научиться нанимать подходящих разработчиков в проекты, где я работаю.
Пару недель назад меня попросили помочь на техническом собеседовании для Senior/Lead backend-разработчика и поделиться опытом. В процессе я формализовал несколько правил, которых придерживаюсь при проверке кандидатов. Чем я и хочу поделиться.
Ниже — мои советы по проведению интервью с конкретными примерами. Уточню, что это не подробное руководство по найму на конкретную должность, а универсальные рекомендации для всех интервью с разработчиками.
👉 @frontendInterview
За последние несколько лет я перестроил свой процесс найма разработчиков, начал по-другому готовиться к собеседованиям и проверять нужные навыки. Как мне кажется, у меня получилось повысить свою продуктивность и научиться нанимать подходящих разработчиков в проекты, где я работаю.
Пару недель назад меня попросили помочь на техническом собеседовании для Senior/Lead backend-разработчика и поделиться опытом. В процессе я формализовал несколько правил, которых придерживаюсь при проверке кандидатов. Чем я и хочу поделиться.
Ниже — мои советы по проведению интервью с конкретными примерами. Уточню, что это не подробное руководство по найму на конкретную должность, а универсальные рекомендации для всех интервью с разработчиками.
👉 @frontendInterview
Что произойдет, если два селектора имеют одинаковую специфичность?
Anonymous Quiz
12%
Применится стиль первого селектора в коде
81%
Применится стиль последнего селектора в коде
6%
Стили объединятся
1%
Браузер выберет случайный стиль
Как работают плавающие элементы (floats)?
float – это CSS-свойство, которое позволяет "выплывать" элементу из обычного потока документа и обтекаться другими элементами (например, текстом).
Пример:
Почему родитель "схлопывается" при использовании
Когда внутри
Решение 1:
Решение 2:
Как остановить обтекание (`clear`)?
Чтобы отменить обтекание, используется
Почему `float` устарел и что использовать вместо него?
Раньше
Flexbox (
CSS Grid (
👉 @frontendInterview
float – это CSS-свойство, которое позволяет "выплывать" элементу из обычного потока документа и обтекаться другими элементами (например, текстом).
Пример:
<img src="image.jpg" class="float-img">
<p>Это текст, который будет обтекать картинку.</p>
.float-img {
float: left;
margin-right: 10px;
}
Почему родитель "схлопывается" при использовании
float
? Когда внутри
div
есть только float
-элементы, браузер считает, что он пустой, потому что float
убирает элемент из потока. <div class="container">
<img src="image.jpg" class="float-img">
<p>Текст обтекает картинку.</p>
</div>
.container {
background: lightgray;
}
.float-img {
float: left;
}
Решение 1:
overflow: hidden;
.container {
overflow: hidden; /* Контейнер теперь учитывает float-элементы */
}
Решение 2:
clearfix
(старый способ) .container::after {
content: "";
display: block;
clear: both;
}
Как остановить обтекание (`clear`)?
Чтобы отменить обтекание, используется
clear
. <img src="image.jpg" class="float-img">
<p>Этот текст обтекает картинку.</p>
<div class="clear"></div>
<p>Этот текст пойдёт на новую строку.</p>
.float-img {
float: left;
margin-right: 10px;
}
.clear {
clear: both;
}
Почему `float` устарел и что использовать вместо него?
Раньше
float
использовали для создания колонок и сеток, но сегодня его заменили: Flexbox (
display: flex;
) – лучше для адаптивных макетов. CSS Grid (
display: grid;
) – мощный инструмент для сложных сеток. .container {
display: flex;
align-items: center;
}
👉 @frontendInterview
👍3❤1👎1
Learning TypeScript (2022)
Вы узнаете:
- Преимущества TypeScript и общие характеристики его системы типов
- Почему и как TypeScript полезен поверх JavaScript
- Как информировать свою систему типов с помощью аннотаций типов, предназначенных только для разработчиков
- Как TypeScript анализирует и понимает код, чтобы помочь вам дополнить существующие модели разработки
- Как TypeScript помогает работать с массивами, классами, функциями, объектами и другими важными встроенными конструкциями JavaScript
👉 @frontendInterview
Вы узнаете:
- Преимущества TypeScript и общие характеристики его системы типов
- Почему и как TypeScript полезен поверх JavaScript
- Как информировать свою систему типов с помощью аннотаций типов, предназначенных только для разработчиков
- Как TypeScript анализирует и понимает код, чтобы помочь вам дополнить существующие модели разработки
- Как TypeScript помогает работать с массивами, классами, функциями, объектами и другими важными встроенными конструкциями JavaScript
👉 @frontendInterview
👎1
Alphabetized
Создайте функцию, которая отсортирует символы строки в алфавитном порядке.
Пример:
👉 @frontendInterview
Создайте функцию, которая отсортирует символы строки в алфавитном порядке.
Пример:
alphabetized("The Holy Bible") // "BbeehHilloTy"
👉 @frontendInterview
Что такое meta теги?
Meta-теги – это специальные HTML-теги, которые содержат метаинформацию о веб-странице. Они располагаются внутри
Зачем нужны meta-теги?
- Улучшают SEO (поисковую оптимизацию)
- Управляют отображением в соцсетях и поисковиках
- Настраивают адаптивность страницы (например, на мобильных устройствах)
- Определяют кодировку, язык и авторство страницы
Основные meta-теги с примерами
Кодировка страницы
Описание страницы (SEO)
Ключевые слова (SEO, устарело)
Автор страницы
Запрет индексации страницы
Адаптивность на мобильных устройствах
Социальные сети (Open Graph, Twitter Cards)
Facebook и другие соцсети (Open Graph)
Twitter-карточки
👉 @frontendInterview
Meta-теги – это специальные HTML-теги, которые содержат метаинформацию о веб-странице. Они располагаются внутри
<head>
и не отображаются на самой странице, но помогают браузерам, поисковым системам и социальным сетям правильно обрабатывать и отображать страницу. Зачем нужны meta-теги?
- Улучшают SEO (поисковую оптимизацию)
- Управляют отображением в соцсетях и поисковиках
- Настраивают адаптивность страницы (например, на мобильных устройствах)
- Определяют кодировку, язык и авторство страницы
Основные meta-теги с примерами
Кодировка страницы
<meta charset="UTF-8">
Описание страницы (SEO)
<meta name="description" content="Лучший сайт с рецептами вкусных блюд!">
Ключевые слова (SEO, устарело)
<meta name="keywords" content="рецепты, еда, кулинария, блюда">
Автор страницы
<meta name="author" content="Иван Иванов">
Запрет индексации страницы
<meta name="robots" content="noindex, nofollow">
Адаптивность на мобильных устройствах
<meta name="viewport" content="width=device-width, initial-scale=1.0">
Социальные сети (Open Graph, Twitter Cards)
Facebook и другие соцсети (Open Graph)
<meta property="og:title" content="Вкусные рецепты">
<meta property="og:description" content="Попробуйте лучшие блюда со всего мира!">
<meta property="og:image" content="https://example.com/image.jpg">
<meta property="og:url" content="https://example.com">
Twitter-карточки
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Рецепты для гурманов">
<meta name="twitter:image" content="https://example.com/image.jpg">
👉 @frontendInterview
👍6
Как можно убрать пробелы в начале и конце строки?
При работе с полями ввода <input> и <textarea> может встречаться ситуация, когда пользователи добавляют пробелы в начале или конце текста. В некоторых случаях это не критично — например, в чатах или мессенджерах. Но есть ситуации, где важно получить чистые данные без лишних пробелов, как при вводе email для авторизации.
Для удаления таких пробельных символов используется метод .trim(), который нужно применить к значению поля перед отправкой данных на сервер.
Метод также помогает получить чистые данные в required-полях. Атрибут required указывает, что поле формы обязательно для заполнения, но он не всегда правильно работает с пробельными символами. Если пользователь введёт только пробелы в поле с атрибутом required, браузер может посчитать поле заполненным, хотя фактически полезной информации там нет.
Пример
Метод не принимает аргументов и работает напрямую со строкой, на которой вызван:
👉 @frontendInterview
При работе с полями ввода <input> и <textarea> может встречаться ситуация, когда пользователи добавляют пробелы в начале или конце текста. В некоторых случаях это не критично — например, в чатах или мессенджерах. Но есть ситуации, где важно получить чистые данные без лишних пробелов, как при вводе email для авторизации.
Для удаления таких пробельных символов используется метод .trim(), который нужно применить к значению поля перед отправкой данных на сервер.
Метод также помогает получить чистые данные в required-полях. Атрибут required указывает, что поле формы обязательно для заполнения, но он не всегда правильно работает с пробельными символами. Если пользователь введёт только пробелы в поле с атрибутом required, браузер может посчитать поле заполненным, хотя фактически полезной информации там нет.
Пример
const phrase = ' А быть может, каждый из вас уже начал — не заметив этого — тот единственный путь, который предназначен ему судьбой.\n '
console.log(phrase.length)
// 124
const phraseWithoutSpaces = phrase.trim()
console.log(phraseWithoutSpaces)
// 'А быть может, каждый из вас уже начал — не заметив этого — тот единственный путь, который предназначен ему судьбой.'
console.log(phraseWithoutSpaces.length)
// 115
Метод не принимает аргументов и работает напрямую со строкой, на которой вызван:
const str = ' Привет, Дока! '
console.log(str.trim()) // 'Привет, Дока!'
👉 @frontendInterview
👍4❤1
Как создать веб-приложение со своей картой: подключение API v3 Яндекс Карт
Сколько карт установлено на вашем смартфоне? Попробуйте ответить на этот вопрос и задумайтесь, как часто их добавляют разработчики приложений. Кто-то отмечает на картах свои магазины, кто-то — делает проекты в духе Zenly, другие — показывают зоны доставки еды и т. д.
Если вам тоже пришлось «вшить» в свое веб-приложение карты, запаситесь терпением. В инструкции рассказываем, как это сделать и настроить тестовое окружение с IDE в облаке.
👉 @frontendInterview
Сколько карт установлено на вашем смартфоне? Попробуйте ответить на этот вопрос и задумайтесь, как часто их добавляют разработчики приложений. Кто-то отмечает на картах свои магазины, кто-то — делает проекты в духе Zenly, другие — показывают зоны доставки еды и т. д.
Если вам тоже пришлось «вшить» в свое веб-приложение карты, запаситесь терпением. В инструкции рассказываем, как это сделать и настроить тестовое окружение с IDE в облаке.
👉 @frontendInterview
❤1👍1
Является ли Drag and Drop частью спецификации HTML5?
Anonymous Quiz
33%
Нет, Drag and Drop реализуется только через JS
59%
Да, это встроенный API в HTML5
2%
Да, но работает только для мобильных устройств
6%
Да, но работает только на устройствах с мышью
👍4