es
Feedback
Frontend | Вопросы собесов

Frontend | Вопросы собесов

Ir al canal en Telegram

📈 Análisis del canal de Telegram Frontend | Вопросы собесов

El canal Frontend | Вопросы собесов (@easy_javascript_ru) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 18 271 suscriptores, ocupando la posición 7 328 en la categoría Tecnologías y Aplicaciones y el puesto 36 922 en la región Rusia.

📊 Métricas de audiencia y dinámica

Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 18 271 suscriptores.

Según los últimos datos del 18 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -130, y en las últimas 24 horas de -5, conservando un alto alcance.

  • Estado de verificación: No verificado
  • Tasa de interacción (ER): El promedio de interacción de la audiencia es 9.76%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 5.46% de reacciones respecto al total de suscriptores.
  • Alcance de las publicaciones: Cada publicación recibe en promedio 1 783 visualizaciones. En el primer día suele acumular 997 visualizaciones.
  • Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 9.
  • Intereses temáticos: El contenido se centra en temas clave como ставь, браузер, html, border, flex.

📝 Descripción y política de contenido

El autor describe el recurso como un espacio para expresar opiniones subjetivas:
Сайт easyoffer.ru Реклама @easyoffer_adv ВП @easyoffer_vp Тесты t.me/+T0COHtFzCJkwMDUy Задачи t.me/+_tcX2w2EmvdmMTgy Вакансии t.me/+CgCAzIyGHHg0Nzky

Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 19 junio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.

18 271
Suscriptores
-524 horas
-307 días
-13030 días
Archivo de publicaciones
🤔 Какие преимущества Redux? Redux — это библиотека для управления состоянием приложений, часто используемая с React, но она также может быть использована с другими библиотеками или фреймворками JavaScript. Redux предлагает централизованное хранилище (store) для состояния приложения, что делает управление состоянием более предсказуемым и удобным. Рассмотрим основные преимущества использования Redux: 🚩Преимущества Централизованное управление состоянием: Все состояние приложения хранится в одном централизованном месте, называемом хранилищем (store). Это упрощает управление состоянием и его доступность из любой части приложения. Предсказуемость и детерминизм: Redux использует чистые функции (редюсеры) для обработки изменений состояния. Это делает поведение приложения предсказуемым и детерминированным. Легкость отладки: Redux предоставляет мощные инструменты для отладки, такие как Redux DevTools, которые позволяют разработчикам просматривать состояние приложения, действия и изменения состояния в реальном времени. Тестируемость: Благодаря использованию чистых функций и явных действий, компоненты состояния и логика изменения состояния в Redux легко тестируются. Улучшенная поддержка и масштабируемость: Поскольку состояние и логика изменения состояния централизованы, легче добавлять новые функции и модули в приложение. Управление сложными состояниями: Redux позволяет эффективно управлять сложными состояниями, включая вложенные структуры данных и зависимости между различными частями состояния. Совместимость с серверным рендерингом (SSR): Redux хорошо подходит для серверного рендеринга, так как состояние приложения может быть предварительно заполнено на сервере и передано клиенту для инициализации. Для начала установим необходимые пакеты:
npm install redux react-redux
Создание действий (actions)
// actions.js
export const increment = () => ({
  type: 'INCREMENT',
});

export const decrement = () => ({
  type: 'DECREMENT',
});
Создание редюсера (reducer)
// reducer.js
const initialState = {
  count: 0,
};

const counterReducer = (state = initialState, action) => {
  switch (action.type) {
    case 'INCREMENT':
      return {
        ...state,
        count: state.count + 1,
      };
    case 'DECREMENT':
      return {
        ...state,
        count: state.count - 1,
      };
    default:
      return state;
  }
};

export default counterReducer;
Redux предоставляет централизованное хранилище для состояния приложения, делая управление состоянием предсказуемым и детерминированным. Преимущества включают улучшенную отладку, тестируемость, поддержку и масштабируемость, а также эффективное управление сложными состояниями. Redux хорошо подходит для крупных приложений и позволяет легко интегрироваться с серверным рендерингом. Ставь 👍 и забирай 📚 Базу знаний

🚀 Frontend для всех! Ищешь место, где можно учиться, общаться и прокачивать свои навыки в веб-разработке? Тогда тебе сюда: �
🚀 Frontend для всех! Ищешь место, где можно учиться, общаться и прокачивать свои навыки в веб-разработке? Тогда тебе сюда: 👥 Reactify | Frontend Разработка — бесплатные курсы, практические проекты и поддержка единомышленников. Теория, примеры кода и свежие IT-новости — всё для твоего роста. 💼 Frontend | Собеседования — разбираем реальные интервью, готовимся к вопросам и делимся полезными материалами. Здесь собрана база знаний для уверенности на любом собеседовании.
В каждом канале тебя ждёт Гайд по Frontend-разработке: подробный Roadmap для изучения, топ вопросов по проектам и soft skills, список технических вопросов, лайвкодинг-задачи и советы по созданию резюме, которое привлечет внимание работодателей. Всё, чтобы уверенно двигаться к своей цели!
Учись. Общайся. Развивайся. Стань частью IT-сообщества! 💪

🤔 Что произойдет при выполнении следующего кода: typeof NaN?
Anonymous voting

🤔 Откуда взялся CSS? CSS (Cascading Style Sheets) появился в середине 1990-х годов как стандарт для описания внешнего вида и форматирования веб-страниц. Разработка CSS началась как ответ на необходимость разделения содержимого веб-страниц и их оформления, что улучшило бы управляемость и поддерживаемость веб-контента. Рассмотрим подробнее историю и развитие CSS. 🚩История появления Ранние годы веб-разработки (1991-1994): 🟠В начале 1990-х годов, когда был изобретен HTML (Tim Berners-Lee в 1991 году), веб-страницы были в основном текстовыми документами с гиперссылками. Внешний вид и форматирование определялись в основном с помощью встроенных элементов HTML, таких как <b>, <i>, <font> и другие. 🟠Эти элементы позволяли контролировать только базовые стили и оформление, и не было эффективного способа централизованного управления стилями для всего веб-сайта. Необходимость стандартизации (1994-1996): 🟠С увеличением популярности веба и усложнением веб-страниц, стало ясно, что необходимо разработать стандарт для описания стилей, который позволил бы разделить структуру (HTML) и оформление (стили). 🟠В 1994 году Хокон Виум Ли (Håkon Wium Lie), работавший в CERN (Европейская организация по ядерным исследованиям), предложил концепцию каскадных таблиц стилей (Cascading Style Sheets). Он представил свой проект Тиму Бернерсу-Ли и сообществу разработчиков веб-стандартов. Создание стандарта CSS (1996): 🟠В 1996 году W3C (World Wide Web Consortium), организация, занимающаяся разработкой и продвижением веб-стандартов, опубликовала первую спецификацию CSS, известную как CSS1. 🟠CSS1 определял основные стили для текста, шрифтов, цветов и элементов интерфейса, таких как отступы и границы. Развитие CSS (1998 - настоящее время): 🟠В 1998 году была опубликована спецификация CSS2, которая добавила новые возможности, такие как позиционирование элементов, z-index, стили для различных медиа-типов (например, печать) и улучшенная поддержка таблиц. 🟠CSS3, разработка которого началась в начале 2000-х, был разделен на модули, что позволило быстрее и гибче разрабатывать и внедрять новые возможности. CSS3 включает в себя десятки модулей, таких как Flexbox, Grid, анимации, трансформации, градиенты и многое другое. 🚩Важные вехи CSS1 (1996): 🟠Основные стили для текста и элементов интерфейса. 🟠Поддержка шрифтов, цветов, отступов и границ. CSS2 (1998): 🟠Позиционирование элементов и z-index. 🟠Стили для различных медиа-типов. 🟠Улучшенная поддержка таблиц и других элементов. CSS3 (начало 2000-х): 🟠Модульная структура спецификации. 🟠Новые возможности, такие как Flexbox, Grid, анимации, трансформации и градиенты. В CSS4 (официальной спецификации CSS4 как таковой нет, но многие новые возможности продолжают разрабатываться в рамках модулей CSS3) включены современные инструменты для веб-разработки, такие как переменные (CSS Custom Properties), сложные селекторы, улучшенная типографика и адаптивный дизайн.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Пример CSS</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <header>
        <h1>Заголовок страницы</h1>
    </header>
    <main>
        <p>Это пример абзаца текста.</p>
    </main>
    <footer>
        <p>&copy; 2024 Все права защищены.</p>
    </footer>
</body>
</html>
Ставь 👍 и забирай 📚 Базу знаний

😒 На одном кодинге уже давно не вывезешь, перспектива 2024 года - Информационная Безопасность Ловите два канала на тему ИБ и
😒 На одном кодинге уже давно не вывезешь, перспектива 2024 года - Информационная Безопасность Ловите два канала на тему ИБ и хакинга ZeroDay - Уроки по кибербезопасности и хакингу с нуля. Вирусы, взломы, OSINT, криптография и свежие новости Белый Хакер - программное обеспечение, утилиты, OSINT, инструменты, полезная литература и много другое. Совершенно новый формат непохожий на другие каналы.

🤔 Как называется функция, которая вызывает саму себя?
Anonymous voting

🤔 Что такое frontend? Frontend — это термин, используемый для описания части веб-приложений и веб-сайтов, с которой взаимодействует пользователь. Это видимая и интерактивная часть приложения, отображаемая в браузере. Frontend включает в себя структуру, дизайн и поведение веб-страниц. 🚩Основные компоненты 🟠HTML (HyperText Markup Language): Отвечает за структуру и содержимое веб-страницы. Это базовый язык разметки, который используется для создания и организации элементов на странице, таких как заголовки, абзацы, изображения, ссылки и формы.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Пример страницы</title>
</head>
<body>
    <h1>Заголовок страницы</h1>
    <p>Это пример абзаца текста.</p>
</body>
</html>
🟠CSS (Cascading Style Sheets): Отвечает за стилизацию веб-страницы. С его помощью можно управлять внешним видом элементов, включая цвета, шрифты, отступы, размеры и расположение. CSS помогает сделать страницы визуально привлекательными и улучшить пользовательский опыт.
body {
    font-family: Arial, sans-serif;
    background-color: #f0f0f0;
    margin: 0;
    padding: 0;
}

h1 {
    color: #333;
    text-align: center;
}

p {
    color: #666;
    padding: 10px;
}
🚩Фреймворки и библиотеки Для упрощения разработки и улучшения эффективности существуют различные фреймворки и библиотеки, которые используются во фронтенд-разработке. 🟠React: Разработанный Facebook, это библиотека для создания пользовательских интерфейсов. React позволяет создавать компоненты — переиспользуемые части интерфейса, которые упрощают разработку и поддержку кода.
import React from 'react';
import ReactDOM from 'react-dom';

function App() {
    return (
        <div>
            <h1>Привет, мир!</h1>
        </div>
    );
}

ReactDOM.render(<App />, document.getElementById('root'));
🟠Angular: Разработанный Google, это платформа и фреймворк для создания динамичных веб-приложений. Angular предлагает мощные инструменты для управления данными, маршрутизации и разработки сложных приложений. 🚩Инструменты 🟠Webpack: Webpack — это инструмент для сборки модулей, который объединяет различные ресурсы (JavaScript, CSS, изображения) в один или несколько файлов для улучшения производительности и управления зависимостями. 🟠Babel: Babel — это транспайлер, который позволяет использовать современные возможности JavaScript в старых браузерах, преобразуя код в совместимый формат. Ставь 👍 и забирай 📚 Базу знаний

🤔 Какой символ используется для объявления объектов?
Anonymous voting

😮 Добавлена новая база слитых курсов на 800ГБ: Python: https://t.me/+QPSH2IcGu4w5ODky Frontend и Web: https://t.me/+MiJVQSyUlDNjODky Программирование: https://t.me/+opj2LZT23ddiZDli Графика и дизайн: https://t.me/+vrZ8dhdUEXM3YmQy

Почему вы не используете Битрикс24 CRM с AI-помощником? 1- не знал 2- забыл Рассказываем и напоминаем! Битрикс24 CRM с AI пом
Почему вы не используете Битрикс24 CRM с AI-помощником? 1- не знал 2- забыл Рассказываем и напоминаем! Битрикс24 CRM с AI помогает увеличивать продажи, работать с постоянными клиентами и сохранять все важные данные. AI-помощник CoPilot внутри сервиса расшифрует телефонные разговоры и автоматически заполнит карточки клиента в CRM. Битрикс24 можно использовать бесплатно для всех команд, независимо от их размера. Не тратьте время на рутину. Узнать больше #реклама bitrix24.ru О рекламодателе

📌 Что будет если передать функцию по ссылке? 💬 Спрашивают в 3% собеседований Передача функции по ссылке означает, что вы передаете не результат выполнения функции, а саму функцию как объект. Это позволяет вам вызывать эту функцию в другой части программы, возможно, в другом контексте или с другими аргументами. Рассмотрим более подробно, что это значит и какие возможности это предоставляет. 🤔 Определение функции: 1️⃣ Создание функции: ➕ Вы создаете функцию и сохраняете ее в переменной или объявляете ее прямо в качестве аргумента.
function greet(name) {
  return `Hello, ${name}!`;
}
🤔 Передача функции по ссылке: 1️⃣ Передача функции: ➕ Вы передаете функцию как аргумент другой функции или сохраняете ее в другой переменной.
function executeFunction(fn, arg) {
  return fn(arg);
}

const result = executeFunction(greet, 'Alice');
console.log(result); // "Hello, Alice!"
В этом примере функция greet передается по ссылке в функцию executeFunction, которая затем вызывает greet с аргументом Alice. 🤔 В чем преимущества и возможности передачи 1️⃣ Повторное использование кода: ➕ Вы можете передавать функции по ссылке и использовать их в разных частях программы, что позволяет избегать дублирования кода. 2️⃣ Функции высшего порядка: ➕ Принимают другие функции в качестве аргументов или возвращают функции, называются функциями высшего порядка. Это позволяет создавать более абстрактные и гибкие функции.
function add(x) {
  return function(y) {
    return x + y;
  };
}

const addFive = add(5);
console.log(addFive(3)); // 8
3️⃣ Коллбеки: ➕ Это функции, которые передаются как аргументы другим функциям и вызываются позже. Это особенно полезно в асинхронных операциях, таких как обработка событий или запросы к серверу.
function fetchData(callback) {
  setTimeout(() => {
    const data = { name: 'Alice' };
    callback(data);
  }, 1000);
}

function handleData(data) {
  console.log(`Received data: ${data.name}`);
}

fetchData(handleData);
4️⃣ Методы массивов: ➕ Многие методы массивов, такие как map, filter, reduce, принимают функции в качестве аргументов для обработки элементов массива.
const numbers = [1, 2, 3, 4, 5];
const squared = numbers.map(num => num * num);
console.log(squared); // [1, 4, 9, 16, 25]
🤔 Важные моменты 1️⃣ Контекст выполнения (this): ➕ При передаче функции по ссылке важно помнить, что контекст выполнения (this) может измениться. Это особенно актуально для методов объектов.
const person = {
  name: 'Alice',
  greet() {
    console.log(`Hello, ${this.name}`);
  }
};

const greet = person.greet;
greet(); // undefined, так как контекст потерян

const boundGreet = person.greet.bind(person);
boundGreet(); // Hello, Alice
2️⃣ Замыкания: ➕ Передача функции по ссылке позволяет использовать замыкания, где внутренняя функция имеет доступ к переменным внешней функции, даже после того, как внешняя функция завершила выполнение.
function createCounter() {
  let count = 0;
  return function() {
    count++;
    return count;
  };
}

const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
Передача функции по ссылке означает, что вы передаете саму функцию, а не результат ее выполнения. Это позволяет вызывать функцию в другом контексте или с другими аргументами, что полезно для повторного использования кода, создания функций высшего порядка, использования коллбеков и методов массивов. Важно помнить о контексте выполнения и возможностях замыканий при передаче функций. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

⚡ Когда говорят, что JavaScript слишком простой язык, на сцену выходит канал JavaScript Learning Здесь легко научиться: ▪️ Ра
Когда говорят, что JavaScript слишком простой язык, на сцену выходит канал JavaScript Learning Здесь легко научиться: ▪️ Разрабатывать высоконагруженные серверные приложения ▪️ Интегрировать внешние API и базы данных ▪️ Создавать масштабируемые серверные приложения ▪️ Проходить технические собеседования в ведущие IT-компании Самый необычный канал про Java, подписывайся@JS_per_month

🤔 Что такое IIFE в JavaScript?
Anonymous voting

📌 Чем отличаются const и let? 💬 Спрашивают в 3% собеседований В разных языках программирования есть разные ключевые слова для объявления переменных. Два таких ключевых слова — const и let — широко используются. Рассмотрим различия между ними в контексте JavaScript. 🤔 const 1️⃣ Константные значения: ➕ Используется для объявления переменных, которые не могут быть переназначены после их инициализации. ➕ Это не означает, что значения неизменны, если переменная указывает на изменяемый объект (например, массив или объект), вы можете изменять содержимое этого объекта. 2️⃣ Инициализация: ➕ Переменная, объявленная с const, должна быть инициализирована сразу же при объявлении. 3️⃣ Область видимости: ➕ Имеет блочную область видимости, то есть видна только внутри блока {}, в котором объявлена.
const a = 10;
a = 20; // Ошибка: Assignment to constant variable.

const obj = { name: "John" };
obj.name = "Jane"; // Допустимо: изменяемое свойство объекта
console.log(obj.name); // "Jane"
🤔 let 1️⃣ Переменные, которые можно переназначить: ➕ Используется для объявления переменных, которые могут быть переназначены позже в коде. 2️⃣ Инициализация: ➕ Переменная, объявленная с let, не обязательно должна быть инициализирована при объявлении. 3️⃣ Область видимости: ➕ Также имеет блочную область видимости.
let b;
b = 10;
b = 20; // Допустимо: значение переменной изменено
console.log(b); // 20

if (true) {
  let c = 30;
  console.log(c); // 30
}
console.log(c); // Ошибка: c is not defined
🤔 Основные различия 1️⃣ Переназначение: ➕ const: Не позволяет переназначать переменную после ее инициализации. ➕ let: Позволяет переназначать переменную. 2️⃣ Инициализация: ➕ const: Требует обязательной инициализации при объявлении. ➕ let: Не требует обязательной инициализации при объявлении. 3️⃣ Область видимости: ➕ Оба имеют блочную область видимости. 🤔 Когда их использовать ➕ Используйте const для переменных, которые не должны изменяться после их инициализации. Это делает код более предсказуемым и снижает вероятность ошибок. ➕ Используйте let для переменных, которые могут изменяться в процессе выполнения программы. 1️⃣ Использование const для неизменяемых переменных:
const pi = 3.14;
const maxItems = 100;
2️⃣ Использование let для переменных, значение которых будет изменяться:
let count = 0;
count++;
console.log(count); // 1
const используется для объявления переменных, которые не могут быть переназначены после их инициализации. Переменные, объявленные с const, должны быть инициализированы сразу и имеют блочную область видимости. ➕ let используется для объявления переменных, которые могут быть переназначены. Переменные, объявленные с let, могут быть не инициализированы сразу и также имеют блочную область видимости. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤔 Какой из этих операторов выполняет строгое неравенство в JavaScript?
Anonymous voting

📌 В чем отличие между серверным рендерингом и спа? 💬 Спрашивают в 3% собеседований Серверный рендеринг (Server-Side Rendering, SSR) и одностраничные приложения (Single Page Applications, SPA) — это два различных подхода к созданию веб-приложений, каждый из которых имеет свои преимущества и недостатки. Рассмотрим их основные отличия. 🤔 Серверный рендеринг (SSR) ➕ При нем весь HTML-код страницы генерируется на сервере и отправляется в браузер в готовом виде. ➕ Сервер получает запрос от клиента, обрабатывает его, собирает необходимые данные, рендерит HTML и отправляет его обратно клиенту. 🤔 Преимущества: 1️⃣ Улучшение SEO: ➕ Поисковые системы получают полностью отрендеренную HTML-страницу, что облегчает индексацию контента. 2️⃣ Быстрый первый рендер (Time to First Paint): ➕ Пользователь видит содержимое страницы быстрее, так как браузер получает готовый HTML. 3️⃣ Совместимость с более старыми браузерами: ➕ Серверный рендеринг не требует от клиента выполнения сложного JavaScript-кода. 🤔 Недостатки: 1️⃣ Нагрузка на сервер: ➕ Сервер должен обрабатывать каждый запрос и рендерить HTML, что может увеличить нагрузку на сервер при большом количестве запросов. 2️⃣ Медленное взаимодействие после первого рендера: ➕ Каждое взаимодействие с приложением может потребовать полного обновления страницы, что делает взаимодействие медленнее и менее плавным. 🤔 Пример: ➕ Next.js для React. 🤔 Одностраничные приложения (SPA) ➕ В нем вся необходимая логика и компоненты загружаются на клиенте единожды при первой загрузке. После этого приложение взаимодействует с сервером через AJAX-запросы, загружая только необходимые данные. ➕ Обновляют контент динамически без перезагрузки всей страницы. 🤔 Преимущества: 1️⃣ Быстрое взаимодействие после первой загрузки: ➕ После начальной загрузки страницы взаимодействие с приложением становится очень быстрым, так как данные обновляются динамически. 2️⃣ Лучшая пользовательская опыта (UX): ➕ Плавные переходы и обновления контента без перезагрузки страницы. 3️⃣ Реактивное взаимодействие: ➕ Возможность реализации сложных пользовательских интерфейсов с высоким уровнем интерактивности. 🤔 Недостатки: 1️⃣ SEO-проблемы: ➕ Поисковые системы могут иметь сложности с индексацией контента, который загружается динамически. 2️⃣ Долгое время первой загрузки (Initial Load Time): ➕ Первоначальная загрузка может быть медленной, так как необходимо загрузить весь JavaScript-код приложения. 3️⃣ Совместимость с браузерами: ➕ Требует современных браузеров и может не работать в старых или менее популярных браузерах без полифиллов. 🤔 Пример: ➕ React с использованием React Router для маршрутизации. ➕ Vue.js с использованием Vue Router. ➕ Angular. 🤔 Гибридные подходы Некоторые современные фреймворки поддерживают гибридный подход, совмещая преимущества SSR и SPA. Например, Next.js для React позволяет рендерить начальную загрузку на сервере для улучшения SEO и времени до первого рендера, а затем переключаться на SPA для интерактивных взаимодействий. SSR с Next.js (React):
// pages/index.js
import React from 'react';

const HomePage = ({ data }) => (
  <div>
    <h1>Home Page</h1>
    <p>{data}</p>
  </div>
);

export async function getServerSideProps() {
  const res = await fetch('https://api.example.com/data');
  const data = await res.json();

  return {
    props: { data },
  };
}

export default HomePage;
➕ Серверный рендеринг (SSR): Генерирует HTML на сервере и отправляет его в браузер. Обеспечивает лучшее SEO и более быстрый первый рендер, но может увеличить нагрузку на сервер и иметь более медленное взаимодействие после первого рендера. ➕ Одностраничные приложения (SPA): Загружают и выполняют весь JavaScript на клиенте, обеспечивая быстрые и плавные взаимодействия после начальной загрузки, но могут иметь проблемы с SEO и более долгое время первой загрузки. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤔 Что такое генераторы в JavaScript?
Anonymous voting

📌 Почему нельзя отдать строку в дом? 💬 Спрашивают в 3% собеседований (https://easyoffer.ru/rating/frontend_developer) Передача строки непосредственно в DOM (Document Object Model) может привести к различным проблемам, связанным с безопасностью и корректностью рендеринга. Рассмотрим более подробно, почему это не рекомендуется. 🤔 Проблемы с безопасностью 1️⃣ XSS-атаки (Cross-Site Scripting): ➕ Если строка содержит пользовательский ввод или динамически полученные данные, она может включать вредоносный код. Например, злоумышленник может вставить <script> тег, который будет выполнен браузером и может украсть данные пользователей или выполнить другие вредоносные действия.
const userInput = "<img src='x' onerror='alert(\"XSS Attack\")'>";
document.getElementById('output').innerHTML = userInput;
🤔 Проблемы с корректностью рендеринга 2️⃣ Неправильный рендеринг HTML: ➕ Строка, содержащая HTML-код, может быть неправильно интерпретирована или отрендерена браузером. Это может привести к некорректному отображению страницы или нарушению её структуры.
const invalidHTML = "<div>Unclosed tag";
document.getElementById('output').innerHTML = invalidHTML;
// Это может привести к неправильному отображению содержимого.
🤔 Как безопасно работать с динамическим контентом 1️⃣ Использование методов DOM API: ➕ Вместо передачи строк, рекомендуется использовать методы DOM API, такие как createElement, appendChild, textContent и другие. Эти методы позволяют безопасно добавлять элементы и текст в DOM.
const userInput = "Safe text";
const outputElement = document.getElementById('output');
const textNode = document.createTextNode(userInput);
outputElement.appendChild(textNode);
2️⃣ Экранирование данных: ➕ Если необходимо вставить HTML-код из строки, можно использовать методы, которые экранируют потенциально опасные символы.
const userInput = "<div>Safe content</div>";
const outputElement = document.getElementById('output');
outputElement.textContent = userInput;
// Использование textContent гарантирует безопасное добавление текста.
🤔 Примеры 1️⃣ Добавление текстового контента:
const userInput = "Some user-provided text";
const outputElement = document.getElementById('output');
outputElement.textContent = userInput;
2️⃣ Создание и добавление элементов:
const userInput = "Some user-provided text";
const outputElement = document.getElementById('output');
const paragraph = document.createElement('p');
paragraph.textContent = userInput;
outputElement.appendChild(paragraph);
Передача строки напрямую может быть небезопасной и привести к XSS-атакам и некорректному рендерингу. Вместо этого рекомендуется использовать методы DOM API, такие как createElement, appendChild, и textContent, для безопасного и правильного добавления элементов и текста. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤔 Какой CSS-селектор выбирает элементы на основе их атрибута?
Anonymous voting

📌 Что делает веб пак? 💬 Спрашивают в 3% собеседований Webpack — это мощный инструмент сборки модулей для современных JavaScript-приложений. Он используется для упаковки и оптимизации всех ресурсов вашего приложения, таких как JavaScript, CSS, изображения и другие файлы, в один или несколько файлов, которые можно эффективно загрузить в браузер. 🤔 Основные функции 1️⃣ Сборка модулей (Module Bundling) :plu Webpack анализирует ваше приложение, начиная с одного или нескольких входных файлов (entry points), и строит граф зависимостей всех модулей, используемых в вашем приложении. ➕ Он объединяет эти модули в один или несколько выходных файлов (bundles), которые можно загрузить в браузер. 2️⃣ Обработка ресурсов (Asset Management) ➕ Webpack может обрабатывать различные типы файлов, такие как JavaScript, CSS, изображения и шрифты, используя загрузчики (loaders) и плагины (plugins). ➕ Загрузчики позволяют вам преобразовывать файлы перед включением их в сборку. Например, загрузка CSS, преобразование ES6+ кода в ES5 с использованием Babel, оптимизация изображений и т.д. 3️⃣ Оптимизация производительности (Performance Optimization) ➕ Webpack предлагает множество встроенных функций для оптимизации выходных файлов, включая минификацию JavaScript и CSS, разделение кода (code splitting), удаление неиспользуемого кода (tree shaking) и др. 4️⃣ Горячая перезагрузка (Hot Module Replacement) ➕ Эта функция позволяет обновлять модули приложения в реальном времени без перезагрузки всей страницы. Это значительно ускоряет процесс разработки и тестирования. 🤔 Основные компоненты 1️⃣ Входные точки (Entry Points) ➕ Входные точки указывают Webpack, с какого файла или файлов начать построение графа зависимостей.
// webpack.config.js
module.exports = {
  entry: './src/index.js',
};
2️⃣ Выходные точки (Output) ➕ Выходные точки определяют, где Webpack должен сохранить сгенерированные файлы и как их называть.
// webpack.config.js
module.exports = {
  entry: './src/index.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js',
  },
};
3️⃣ Загрузчики (Loaders) ➕ Загрузчики используются для обработки различных типов файлов. Они позволяют вам преобразовывать файлы перед их включением в сборку.
// webpack.config.js
module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader'],
      },
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env'],
          },
        },
      },
    ],
  },
};
Webpack — это инструмент для сборки модулей, который объединяет и оптимизирует различные ресурсы приложения (JavaScript, CSS, изображения и т.д.) в один или несколько файлов для загрузки в браузер. Он использует входные точки (entry points), выходные точки (output), загрузчики (loaders) и плагины (plugins) для управления процессом сборки и обеспечения оптимальной производительности. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых