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

channel icon
Разбираем вопросы с собеседований на Frontend программиста. HTML, CSS, JavaScript, React, Angular, Vue js

Cайт: easyoffer.ru

Условия размещения

Цена за 48 часов в ленте 13200,00
Цена за 1 час закрепления N/A
Взаимопиар Нет
Дополнительные условия рекламы Отсутствуют
-2
18 530
подписчиков
-4
~2.9k
охват 1 публикации
0
~4
постов / день
0,0%
15,6%
ERR % ?

Статистика

Последние публикации

Frontend | Вопросы собесов
22 декабря 2024 г. 12:10
🤔 Как отрисовать массив элементов?Как отрисовать массив элементов?

В React для отрисовки массива элементов используется метод map(), который позволяет перебрать массив и вернуть JSX для каждого элемента. Это удобный и декларативный способ создания списков элементов.

🚩Пример использования `map()` для отрисовки массива

import React from 'react';

const users = [
{ id: 1, name: 'Alice', age: 25 },
{ id: 2, name: 'Bob', age: 30 },
{ id: 3, name: 'Charlie', age: 35 }
];

const UserList = () => {
return (

User List



    {users.map(user => (

  • {user.name} - {user.age} years old

  • ))}


);
};

export default UserList;


1⃣Использование map()
{users.map(user => (

  • {user.name} - {user.age} years old

  • ))}


    2⃣Атрибут key


  • 🚩Отрисовка сложных компонентов

    Если каждый элемент массива представляет собой более сложный компонент, можно создать отдельный компонент для каждого элемента и использовать его внутри map().
    import React from 'react';

    const users = [
    { id: 1, name: 'Alice', age: 25, email: 'alice@example.com' },
    { id: 2, name: 'Bob', age: 30, email: 'bob@example.com' },
    { id: 3, name: 'Charlie', age: 35, email: 'charlie@example.com' }
    ];

    const UserItem = ({ user }) => {
    return (

    {user.name}


    Age: {user.age}


    Email: {user.email}



    );
    };

    const UserList = () => {
    return (

    User List


    {users.map(user => (

    ))}

    );
    };

    export default UserList;


    1⃣Создание компонента для элемента списка
    const UserItem = ({ user }) => {
    return (

    {user.name}


    Age: {user.age}


    Email: {user.email}



    );
    };


    2⃣Использование компонента внутри map()
    {users.map(user => (

    ))}


    Ставь 👍👍 и забирай 📚 📚 Базу знанийБазу знаний
    Frontend | Вопросы собесов
    21 декабря 2024 г. 19:10
    🤔🤔 Что такое семантика в веб-разработке

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

    Ставь 👍 если знал ответ, 🔥 если нет
    Забирай 📚 📚 Базу знанийБазу знаний
    Frontend | Вопросы собесов
    21 декабря 2024 г. 15:07
    Надежная IT-инфраструктура для бизнеса от Selectel.Надежная IT-инфраструктура для бизнеса от Selectel.

    Комплексные IaaS-решения для всех уровней бизнеса.

    - Выделенные серверы
    - Облачные серверы
    - Объектное хранилище
    - Мобильная ферма
    - DBaaS и Managed Kubernetes
    - 1С в облаке

    Перейти на сайтПерейти на сайт

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

    О рекламодателе
    Frontend | Вопросы собесов
    21 декабря 2024 г. 15:07
    Frontend | Вопросы собесов
    21 декабря 2024 г. 15:07
    Frontend | Вопросы собесов
    21 декабря 2024 г. 15:07
    Frontend | Вопросы собесов
    21 декабря 2024 г. 15:07
    Frontend | Вопросы собесов
    21 декабря 2024 г. 15:07
    Frontend | Вопросы собесов
    21 декабря 2024 г. 12:10
    🤔 Что делает setstate()?Что делает setstate()?

    Это метод в React, который используется для обновления состояния компонента. Когда состояние компонента изменяется, React запускает процесс обновления (рендеринга) компонента и всех его дочерних компонентов, чтобы отобразить актуальные данные.

    🚩Основные концепции

    🟠АсинхронностьВызов setState() может быть асинхронным. Это означает, что состояние компонента не обязательно будет обновлено сразу после вызова setState(). Вместо этого, React может сгруппировать несколько вызовов setState() для оптимизации производительности.
    🟠Мерджинг состояния
    При вызове setState() React сливает (мерджит) новый объект состояния с текущим состоянием. Это позволяет обновлять только те части состояния, которые изменились, без перезаписи всего состояния.

    🚩Синтаксис

    🟠Первый аргумент
    Может быть объектом или функцией. Объект: Новый фрагмент состояния, который нужно объединить с текущим состоянием Функция: Функция, которая принимает текущее состояние и пропсы и возвращает новый фрагмент состояния.

    🟠Второй аргумент (необязательный)
    Колбэк-функция, которая будет вызвана после того, как состояние обновится и компонент перерисуется.

    🚩Примеры использования

    Объект как аргумент
    class MyComponent extends React.Component {
    constructor(props) {
    super(props);
    this.state = {
    count: 0
    };
    }
    incrementCount = () => {
    this.setState({ count: this.state.count + 1 });
    }
    render() {
    return (

    Count: {this.state.count}




    );
    }
    }


    🟠Функция как аргумент
    Использование функции вместо объекта рекомендуется, когда новое состояние зависит от предыдущего состояния, чтобы избежать потенциальных проблем с асинхронностью.
    class MyComponent extends React.Component {
    constructor(props) {
    super(props);
    this.state = {
    count: 0
    };
    }
    incrementCount = () => {
    this.setState((prevState, props) => ({
    count: prevState.count + 1
    }));
    }
    render() {
    return (

    Count: {this.state.count}




    );
    }
    }


    🟠Колбэк-функция
    Второй аргумент setState() — это колбэк, который вызывается после того, как состояние было обновлено и компонент перерисован.
    class MyComponent extends React.Component {
    constructor(props) {
    super(props);
    this.state = {
    count: 0
    };
    }
    incrementCount = () => {
    this.setState({ count: this.state.count + 1 }, () => {
    console.log('Состояние обновлено:', this.state.count);
    });
    }
    render() {
    return (

    Count: {this.state.count}




    );
    }
    }


    🚩Важные замечания

    🟠Не изменяйте состояние напрямую
    Изменение состояния напрямую (например, this.state.count = 1) не вызовет перерисовку компонента. Всегда используйте setState().
    🟠Batching (группировка)
    React может группировать несколько вызовов setState() для повышения производительности. Поэтому состояние может быть обновлено асинхронно.
    🟠Компоненты-классы и хуки
    В функциональных компонентах для управления состоянием используются хуки, такие как useState. setState() используется только в компонентах-классах.

    Ставь 👍👍 и забирай 📚 📚 Базу знанийБазу знаний
    Frontend | Вопросы собесов
    20 декабря 2024 г. 16:09
    Цены на все Серверы онлайн! Удобный конфигуратор!Цены на все Серверы онлайн! Удобный конфигуратор!

    Серверы STSS Flagman✅
    Огромный выбор решений 👍
    Консультации лучших экспертов 👌
    Непревзойденный сервис ❤️

    Получить предложениеПолучить предложение

    #реклама
    stss.ru

    О рекламодателе
    Frontend | Вопросы собесов
    20 декабря 2024 г. 12:10
    🤔 Как получить свойство объекта?Как получить свойство объекта?

    🟠Доступ через точечную нотацию
    Точечная нотация является наиболее распространенным способом доступа к свойствам объекта. Она проста и удобна для использования, когда имя свойства известно и является допустимым идентификатором JavaScript.
    const person = {
    name: 'Alice',
    age: 25
    };

    console.log(person.name); // 'Alice'
    console.log(person.age); // 25


    🟠Доступ через квадратные скобки
    Квадратные скобки позволяют получать свойства с именами, которые могут содержать пробелы, специальные символы или быть результатом выражения. Это также полезно, когда имя свойства хранится в переменной.
    const person = {
    'first name': 'Alice',
    age: 25
    };

    console.log(person['first name']); // 'Alice'
    console.log(person['age']); // 25

    const propertyName = 'age';
    console.log(person[propertyName]); // 25


    🟠Деструктуризация объектов
    Деструктуризация позволяет извлекать свойства из объекта и присваивать их переменным. Это особенно полезно для извлечения нескольких свойств одновременно.
    const person = {
    name: 'Alice',
    age: 25
    };

    const { name, age } = person;

    console.log(name); // 'Alice'
    console.log(age); // 25


    🟠Использование Object.keys, Object.values и Object.entries
    Эти методы позволяют получать массивы ключей, значений или пар ключ-значение соответственно.
    Object.keys: Возвращает массив ключей объекта.
        const person = {
    name: 'Alice',
    age: 25
    };

    const keys = Object.keys(person);
    console.log(keys); // ['name', 'age']


    Object.values: Возвращает массив значений объекта.
        const person = {
    name: 'Alice',
    age: 25
    };

    const values = Object.values(person);
    console.log(values); // ['Alice', 25]


    Object.entries: Возвращает массив пар ключ-значение.
        const person = {
    name: 'Alice',
    age: 25
    };

    const entries = Object.entries(person);
    console.log(entries); // [['name', 'Alice'], ['age', 25]]


    🟠Проверка наличия свойств
    Перед доступом к свойству можно проверить его наличие с помощью оператора in или метода hasOwnProperty.
    Оператор in
        const person = {
    name: 'Alice',
    age: 25
    };

    console.log('name' in person); // true
    console.log('gender' in person); // false


    Метод hasOwnProperty
        const person = {
    name: 'Alice',
    age: 25
    };

    console.log(person.hasOwnProperty('name')); // true
    console.log(person.hasOwnProperty('gender')); // false


    Ставь 👍👍 и забирай 📚 📚 Базу знанийБазу знаний
    Frontend | Вопросы собесов
    19 декабря 2024 г. 19:10
    🤔 Что такое Git-flow?

    Git-flow — это модель ветвления в Git для управления разработкой, предложенная Винсентом Дриссеном. Она включает основные ветки (`main`, `develop`) и временные ветки (`feature`, `release`, `hotfix`) для разработки, тестирования и исправления ошибок. Git-flow делает процесс разработки структурированным, но может быть избыточным для небольших или быстрых проектов.

    Ставь 👍 если знал ответ, 🔥 если нет
    Забирай 📚 📚 Базу знанийБазу знаний
    Frontend | Вопросы собесов
    19 декабря 2024 г. 15:14
    Концептуальные офисы в БЦ RUNOVSKY 14Концептуальные офисы в БЦ RUNOVSKY 14

    Концептуальное офисное пространство для работы, расположенное в историческом центре Москвы в районе Замоскворечье. Проект имеет свой неповторимый характер. Переосмысление стиля ар-деко нашло свое отражение в черных фасадах с арочным остеклением.

    БЦ находится в 2 минутах ходьбы от метро "Новокузнецкая", через которую проходят основные пешие маршруты до Третьяковской галереи, парка Зарядья и Московкского Кремля.

    Проектом предусмотрено большое количество планировочных решений офисов площадью от 27 м2 с возможностью объединения смежных помещений.

    Тех, кто решит купить лот в "RUNOVSKY 14", ждет премиальный сервис, безопасность и комфортная атмосфера.

    Перейти на сайтПерейти на сайт

    #реклама
    зиккурат.рф

    О рекламодателе
    Frontend | Вопросы собесов
    19 декабря 2024 г. 12:10
    🤔 Как отслеживать и обрабатывать ошибки в javascript?Как отслеживать и обрабатывать ошибки в javascript?

    🟠Использование try...catch
    Оператор try...catch позволяет обрабатывать ошибки, возникающие в блоке try. Если возникает ошибка, выполнение кода переходит к блоку catch.
    try {
    // Код, который может вызвать ошибку
    let result = riskyOperation();
    console.log(result);
    } catch (error) {
    // Обработка ошибки
    console.error('Произошла ошибка:', error.message);
    }


    Пример использования
    function riskyOperation() {
    throw new Error('Что-то пошло не так');
    }

    try {
    riskyOperation();
    } catch (error) {
    console.error('Произошла ошибка:', error.message); // Произошла ошибка: Что-то пошло не так
    }


    🟠Использование блока finally
    Блок finally выполняется после того, как были выполнены блоки try и catch. Он выполняется независимо от того, произошла ли ошибка.
    try {
    let result = riskyOperation();
    console.log(result);
    } catch (error) {
    console.error('Произошла ошибка:', error.message);
    } finally {
    console.log('Этот блок выполнится в любом случае');
    }


    🟠Обработка ошибок в асинхронных функциях
    Для обработки ошибок в асинхронных функциях, использующих async/await, также можно использовать try...catch.
    async function fetchData() {
    try {
    let response = await fetch('https://api.example.com/data');
    if (!response.ok) {
    throw new Error('Network response was not ok');
    }
    let data = await response.json();
    console.log(data);
    } catch (error) {
    console.error('Произошла ошибка при получении данных:', error.message);
    }
    }

    fetchData();


    🟠Использование промисов
    При работе с промисами можно использовать методы catch и finally для обработки ошибок.
    fetch('https://api.example.com/data')
    .then(response => {
    if (!response.ok) {
    throw new Error('Network response was not ok');
    }
    return response.json();
    })
    .then(data => {
    console.log(data);
    })
    .catch(error => {
    console.error('Произошла ошибка при получении данных:', error.message);
    })
    .finally(() => {
    console.log('Запрос завершен');
    });


    🟠Глобальная обработка ошибок
    Для глобальной обработки ошибок можно использовать обработчики событий window.onerror и window.onunhandledrejection. Обработка ошибок выполнения
    window.onerror = function(message, source, lineno, colno, error) {
    console.error('Произошла глобальная ошибка:', message);
    return true; // предотвращает вывод ошибки в консоль браузера
    };


    Обработка неотловленных промисов
    window.onunhandledrejection = function(event) {
    console.error('Неотловленный отказ в промисе:', event.reason);
    };


    🟠Пользовательские ошибки
    Можно создавать собственные ошибки с помощью класса Error.
    class CustomError extends Error {
    constructor(message) {
    super(message);
    this.name = 'CustomError';
    }
    }

    try {
    throw new CustomError('Это пользовательская ошибка');
    } catch (error) {
    console.error(error.name + ': ' + error.message); // CustomError: Это пользовательская ошибка
    }


    Ставь 👍👍 и забирай 📚 📚 Базу знанийБазу знаний
    Frontend | Вопросы собесов
    18 декабря 2024 г. 20:10
    Бесплатный практический вебинар: Веб-разработчик: с нуля до мини-игры за 2 часа.Бесплатный практический вебинар: Веб-разработчик: с нуля до мини-игры за 2 часа.

    Когда: 23 декабря в 19:00 по мск.

    Погрузитесь в решение реальной задачи и напишите небольшую игру на HTML, JS и CSS, которая работает прямо в браузере 🎮

    Расскажем, что ждут работодатели от джунов, какие есть грейды во фронтенд-разработке и на какую зарплату рассчитывать в перспективе.

    Какие JS фреймворки учить: Vue, React, а может, Angular?

    Задайте вопросы опытному спикеру, сделайте первый шаг в направлении новой профессии.

    🎁 Всем, кто зарегистрировался - гайд «Как заговорить на сленге IT-специалистов», а каждому участнику -  карта компетенций начинающего Frontend-разработчика и гайд «Как опубликовать страницу в интернете при помощи GitHub Pages»
    Frontend | Вопросы собесов
    18 декабря 2024 г. 19:10
    🤔🤔 Что приоритетнее использовать TS или JS?

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

    Ставь 👍 если знал ответ, 🔥 если нет
    Забирай 📚 📚 Базу знанийБазу знаний
    Frontend | Вопросы собесов
    18 декабря 2024 г. 17:01
    Elax готов к любому вашему отдыху!Elax готов к любому вашему отдыху!

    С Elax на диване: от прыжков до просмотра.

    С Elax на кровати: хоть лежать, хоть работать.

    Отдыхай как хочешь, если внутри Elax!

    Познакомься с инновационным наполнителем для мягкой мебели и матрасов!

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

    #реклама
    elax.ru

    О рекламодателе
    Frontend | Вопросы собесов
    18 декабря 2024 г. 12:10
    🤔 Как избежать ссылочной зависимости при копировании объекта?Как избежать ссылочной зависимости при копировании объекта?

    Чтобы избежать ссылочной зависимости при копировании объекта в JavaScript, необходимо создать глубокую копию объекта. Глубокая копия означает, что все вложенные объекты и массивы также будут скопированы, а не просто ссылки на них.

    🟠Использование JSON.stringify и JSON.parse
    Этот метод подходит для простых объектов, не содержащих функций, специальных объектов (например, Date) или циклических ссылок.
    const original = {
    name: 'Alice',
    age: 25,
    address: {
    city: 'Wonderland',
    zip: '12345'
    }
    };

    const copy = JSON.parse(JSON.stringify(original));
    copy.address.city = 'Otherland';

    console.log(original.address.city); // Wonderland
    console.log(copy.address.city); // Otherland


    🟠Использование рекурсивной функции для глубокого копирования
    Этот метод позволяет точно контролировать процесс копирования и обрабатывать более сложные структуры данных.
    function deepClone(obj) {
    if (obj === null || typeof obj !== 'object') {
    return obj;
    }

    if (Array.isArray(obj)) {
    const arrCopy = [];
    obj.forEach((item, index) => {
    arrCopy[index] = deepClone(item);
    });
    return arrCopy;
    }

    const objCopy = {};
    for (const key in obj) {
    if (obj.hasOwnProperty(key)) {
    objCopy[key] = deepClone(obj[key]);
    }
    }
    return objCopy;
    }

    const original = {
    name: 'Alice',
    age: 25,
    address: {
    city: 'Wonderland',
    zip: '12345'
    }
    };

    const copy = deepClone(original);
    copy.address.city = 'Otherland';

    console.log(original.address.city); // Wonderland
    console.log(copy.address.city); // Otherland


    🟠Использование библиотеки lodash
    Lodash предоставляет удобную функцию cloneDeep для глубокого копирования объектов.
    const _ = require('lodash');

    const original = {
    name: 'Alice',
    age: 25,
    address: {
    city: 'Wonderland',
    zip: '12345'
    }
    };

    const copy = _.cloneDeep(original);
    copy.address.city = 'Otherland';

    console.log(original.address.city); // Wonderland
    console.log(copy.address.city); // Otherland


    🟠Использование структурированной клонирования (Structured Clone)
    Метод structuredClone позволяет создавать глубокие копии объектов. Этот метод является частью HTML Living Standard и поддерживается в некоторых современных браузерах и средах исполнения.
    const original = {
    name: 'Alice',
    age: 25,
    address: {
    city: 'Wonderland',
    zip: '12345'
    }
    };

    const copy = structuredClone(original);
    copy.address.city = 'Otherland';

    console.log(original.address.city); // Wonderland
    console.log(copy.address.city); // Otherland


    Ставь 👍👍 и забирай 📚 📚 Базу знанийБазу знаний
    Frontend | Вопросы собесов
    18 декабря 2024 г. 10:00
    А вы знали что?...

    🕵️В Windows есть папка, которая собирает на вас компромат!

    Посмотрите видео выше — насколько легко узнать всю информацию о вас

    Простых способов узнать о вас практически всё — сотни, и если вы хотите соблюдать хотя бы минимум сетевой гигиены — подпишитесь на IT ВЕДОМСТВО

    Они рассказывает о признаках майнеров, как удалить трояны и порно-баннеры за 5 минут

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

    💻 Подписываемся на IT ВЕДОМСТВОIT ВЕДОМСТВО — выигрываем призы и соблюдаем цифровую гигиену
    Frontend | Вопросы собесов
    17 декабря 2024 г. 19:10
    🤔🤔 Что такое IIFE?

    IIFE (Immediately Invoked Function Expression) — это функция в JavaScript, которая вызывается сразу после определения. Она используется для создания изолированного пространства имён, чтобы избежать конфликтов в глобальной области видимости.

    Ставь 👍 если знал ответ, 🔥 если нет
    Забирай 📚 📚 Базу знанийБазу знаний