Канал для подготовки к собеседованиям по фронтенду Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront Менеджер по рекламе: @Spiral_Yuri Купить рекламу: https://telega.in/c/frontendinterview Номер заявления в РКН № 4959045795
Бесплатный практический вебинар: Веб-разработчик: с нуля до мини-игры за 2 часа.
⏰ Когда: 30 января в 19:00 по мск.
Погрузитесь в решение реальной задачи и напишите небольшую игру на HTML, JS и CSS, которая работает прямо в браузере 🎮
Расскажем, что ждут работодатели от джунов, какие есть грейды во фронтенд-разработке и на какую зарплату рассчитывать в перспективе.
Какие JS фреймворки учить: Vue, React, а может, Angular?
Задайте вопросы опытному спикеру, сделайте первый шаг в направлении новой профессии.
🎁 Всем, кто зарегистрировался - гайд «Как заговорить на сленге IT-специалистов», а каждому участнику - карта компетенций начинающего Frontend-разработчика и гайд «Как опубликовать страницу в интернете при помощи GitHub Pages»
Колледж + ВУЗ дистанционно в рассрочку от 40 000 в год
Поступи в Колледж «Синергия»!
— Учись в московском колледже, не выходя из дома.
— Полностью дистанционный онлайн-формат.
— Обучайся дома, на работе, в путешествии.
— Поступление круглый год.
— Диплом государственного образца.
— Программа «колледж + вуз» без ЕГЭ.
Рассрочка 0% на весь срок обучения.
Перейти на сайт
#реклама 16+
synergy.ru
О рекламодателе
Что должен знать каждый frontend-разработчик?
Центр непрерывного образования факультета компьютерных наук НИУ ВШЭ приглашает на бесплатный вебинар, который поможет вам получить ответы на все возможные вопросы о старте карьеры в области frontend-разработки.
На вебинаре обсудим:
〰️〰️〰️〰️
- Фронтенд-разработка: базовые концепции и перспективы индустрии
- HTML и CSS: разметка и стилизация интерфейсов, принципы вёрстки и оформления веб-страниц
- JavaScript: ключевые возможности для фронтенда
- Минимальный набор знаний для стажёра и junior-разработчика: о чём вас спросят на собеседовании
- Инструменты разработки: библиотеки и фреймворки, с которыми предстоит работать
- Практика и ресурсы для обучения: где решать задачи и проходить контесты для оттачивания навыков
Спикер: Семён Гурин, разработчик интерфейсов и бизнес-логики в Кинопоиске
Когда: 30 января в 19:30
Зарегистрироваться на вебинар
Реклама: НИУ ВШЭ ИНН 7714030726
Erid:2SDnjcX3ZLg
Break camelCase
Создайте функцию, которая разобьет строку в camelCase на несколько слов, разделенных пробелом
Пример
"camelCasing" => "camel Casing"
"identifier" => "identifier"
"" => ""
Курс "Дизайн карточек для WB и Ozon". Бесплатно и с нуля
Дизайнер карточек для маркетплейсов — востребованная и доходная профессия 💰
Научись ей бесплатно!
- Бесплатный доступ
- Разбор ДЗ от наставника
- Мощные кейсы в портфолио
Узнать больше
#реклама 16+
yudaevschool24.online
О рекламодателе
В сети поделились гениальным лайфхаком, как превратить свой месячный отпуск в двухмесячный
👉 @frontendInterview
📌Есть только 2 способа стать JavaScript Senior:
1. Часами просматривать видео на YouTube, документацию и решать сложные задачи, так и не достигнув ощутимого прогресса.
2. Следить за каналом «JavaScript Senior» и сократить 70% времени на подготовку к собеседованиям и улучшение навыков!
Получай полезные сниппеты, актуальные вопросы с собеседований и будь в курсе последних новинок – подпишись @JavaScriptSenior!
Дан одномерный массив. Его элементами могут быть значения разных типов, включая: undefined, null, boolean, string, number.
const array = [5, undefined, 0, false, '', null, true, 1]
array[15] = 'новый элемент'
console.log(array)
// [ 5, undefined, 0, false, '', null, true, 1, <7 empty items>, 'новый элемент']
const test = new Array(5)
test[2] = 42
2 in test // true
test.hasOwnProperty(2) // true
0 in test // false
test.hasOwnProperty(0) // false
const test = new Array(5)
test[2] = 42
test.forEach((value, key) => console.log(`значение по ключу ${key}: ${value}`))
// значение по ключу 2: 42
// консоль вывела значение только один раз
const calcEmpty = items => items.reduce(amount => --amount, items.length)
const test = new Array(5)
test[2] = 42
calcEmpty(test) // 4
test[10] = 2
calcEmpty(test) // 9
Зачем нужен ref в React? ref
(сокращение от reference) используется для доступа к DOM-элементам или компонентам напрямую. Он позволяет взаимодействовать с элементами, которые были созданы в процессе рендеринга, предоставляя механизм для манипуляции с ними, получения их размеров, положения или вызова методов у компонент. Это особенно полезно в ситуациях, когда необходимо выполнить операции, которые не могут быть выполнены исключительно через декларативный подход React.
Основные случаи использования ref:
- Доступ к DOM-элементам:
- Использование в сторонних библиотеках:
- Сохранение состояния вне дерева компонентов:
Примеры использования ref:
Установка фокуса на элемент:
import React, { useRef, useEffect } from 'react';
function TextInputWithFocusButton() {
const inputEl = useRef(null);
const onButtonClick = () => {
// Установить фокус на текстовое поле
inputEl.current.focus();
};
return (
<div>
<input ref={inputEl} type="text" />
<button onClick={onButtonClick}>Установить фокус</button>
</div>
);
}
export default TextInputWithFocusButton;
import React, { useRef, useEffect, useState } from 'react';
function MeasureDiv() {
const divRef = useRef(null);
const [dimensions, setDimensions] = useState({ width: 0, height: 0 });
useEffect(() => {
if (divRef.current) {
const { width, height } = divRef.current.getBoundingClientRect();
setDimensions({ width, height });
}
}, []);
return (
<div>
<div ref={divRef} style={{ width: '100px', height: '100px', backgroundColor: 'lightblue' }}>
Измеряемый элемент
</div>
<p>Ширина: {dimensions.width}px, Высота: {dimensions.height}px</p>
</div>
);
}
export default MeasureDiv;
import React, { Component } from 'react';
class CustomComponent extends Component {
customMethod() {
console.log('Метод компонента вызван');
}
render() {
return <div>Custom Component</div>;
}
}
class ParentComponent extends Component {
constructor(props) {
super(props);
this.customComponentRef = React.createRef();
}
handleClick = () => {
this.customComponentRef.current.customMethod();
};
render() {
return (
<div>
<CustomComponent ref={this.customComponentRef} />
<button onClick={this.handleClick}>Вызвать метод компонента</button>
</div>
);
}
}
export default ParentComponent;
ref
следует использовать для случаев, которые не могут быть решены этим способом.Ум программиста. Как понять и осмыслить любой код
Книга освещает практические основы когнитивистики для программистов. Основные темы: осмысление и развитие чужого и собственного кода, изучение новых языков программирования, мнемонические приемы для программистов, поддержка кода в читаемом состоянии. Объяснено, как снижать когнитивную нагрузку при работе программиста, как делать код логичным и понятным для себя и коллег.
👉 @frontendInterview
Дешёвую рабочую силу теряет
👉 @frontendInterview
Курс "Дизайн карточек для WB и Ozon". Бесплатно и с нуля
Дизайнер карточек для маркетплейсов — востребованная и доходная профессия 💰
Научись ей бесплатно!
- Бесплатный доступ
- Разбор ДЗ от наставника
- Мощные кейсы в портфолио
Узнать больше
#реклама 16+
yudaevschool24.online
О рекламодателе
Офисы от 380 000 ₽/м² с НДС в БЦ TALLER. м.Павелецкая
TALLER - Новая высота вашего бизнеса! Офисы А класса.
Павелецкий деловой район. 1 км до Садового кольца. Высокая стадия готовности. Помещения под любой тип бизнеса площадью от 64 до 1840 м² в шаговой доступности от набережной.
Рассрочка 0% от застройщика. Продажа по ДДУ. От 380 000 ₽/м².
Выгода до 25% на офисы площадью от 300 м²!
Перейти на сайт
Проектная декларация на сайте https://наш.дом.рф/. Застройщик: ООО "Специализированный застройщик "ТАЛЛЕР"
#реклама
tr-8.ru
О рекламодателе
🌐 Единая точка входа в IT!
Хочешь освоить полный стек технологий, подготовиться к реальным собеседованиям и получить работу мечты? Мы собрали всё необходимое для твоего роста и развития в одном месте!
Выбирай направление и становись частью IT сообщества:
👩💻 React Frontend
👩💻 Ruby Backend
👩💻 iOS Mobile
👩💻 Android Mobile
🖥 PHP Backend
👩💻 Node.js Backend
👩💻 Rust Backend
👩💻 Java Backend
👣 Golang Backend
👩💻 Python Backend
👩💻 QA & Testing
🖥 Общее IT
👨💻 Вакансии IT
📅 Митапы IT
А также у нас есть собственная платформа для подготовки к собеседованиям!
🔹 1000+ вопросов по всем направлениям
🔹 Удобные тренажеры для отработки навыков
🔹 Система фильтров по технологиям и уровню сложности
🔹 Персональная статистика прогресса и история подготовки
YeaHub помогает расти и достигать целей. ⚡
Как задать начальные стили для элемента в момент его появления на странице?
При вёрстке сайтов бывает нужно привлечь внимание пользователя к появлению элемента на странице. Например, плавно сменить цвет фона блока в момент загрузки сайта. Или сделать открытие диалога плавным и аккуратным. То есть необходимо осуществить переход из начального состояния элемента в основное. При этом сделать это нужно один раз и именно в момент появления элемента на экране.
Чтобы сообщить браузеру, какие должны быть стили у элемента в его начальном состоянии, используется директива @starting-style.
Пример
.promo-block {
transition: opacity 0.4s ease-in;
opacity: 1;
}
@starting-style {
.promo-block {
opacity: 0;
}
}
Какие методы http запросов знаешь ?
HTTP (HyperText Transfer Protocol) поддерживает множество методов запросов, каждый из которых предназначен для выполнения определенных действий на сервере. Вот основные методы HTTP-запросов, которые широко используются:
GET
Запрашивает данные с сервера.
- Не изменяет состояние сервера (идемпотентный).
- Параметры запроса передаются в URL.
- Кэшируется.
- Можно сохранить в закладках браузера.
GET /api/users?id=123 HTTP/1.1
Host: www.example.com
POST /api/users HTTP/1.1
Host: www.example.com
Content-Type: application/json
{
"name": "John Doe",
"email": "john.doe@example.com"
}
PUT /api/users/123 HTTP/1.1
Host: www.example.com
Content-Type: application/json
{
"name": "John Doe",
"email": "john.doe@example.com"
}
DELETE /api/users/123 HTTP/1.1
Host: www.example.com
PATCH /api/users/123 HTTP/1.1
Host: www.example.com
Content-Type: application/json
{
"email": "new.email@example.com"
}
HEAD /api/users/123 HTTP/1.1
Host: www.example.com
OPTIONS /api/users HTTP/1.1
Host: www.example.com
CONNECT www.example.com:443 HTTP/1.1
Host: www.example.com
Production Ready GraphQL
Данная книга содержит полное описании того, что входит в создание GraphQL API: дизайн, архитектура, реализация и даже документации.
Примеры в книге не зависят от языка. Вместо этого они фокусируются на концепциях и шаблонах, которые реализуются независимо от того, как вы создаете сервер GraphQL.
👉 @frontendInterview
Как отрисовать компонент по условию?
В React отрисовка компонентов по условию осуществляется с помощью условных операторов JavaScript внутри JSX. Это позволяет отображать компоненты или элементы только тогда, когда выполняется определенное условие. Рассмотрим несколько способов условной отрисовки компонентов в React.
Использование тернарного оператора:
Тернарный оператор ? :
позволяет компактно проверять условие и отрисовывать один из двух компонентов.
Пример:
import React from 'react';
const MyComponent = ({ isLoggedIn }) => {
return (
<div>
{isLoggedIn ? <p>Welcome back!</p> : <p>Please log in.</p>}
</div>
);
};
export default MyComponent;
&&
для отрисовки компонента только тогда, когда условие истинно.import React from 'react';
const MyComponent = ({ showDetails }) => {
return (
<div>
<h1>Item</h1>
{showDetails && <p>Here are the details...</p>}
</div>
);
};
export default MyComponent;
if...else
внутри функции компонента.import React from 'react';
const MyComponent = ({ status }) => {
if (status === 'loading') {
return <p>Loading...</p>;
} else if (status === 'error') {
return <p>Error occurred!</p>;
} else if (status === 'success') {
return <p>Data loaded successfully!</p>;
} else {
return null; // Возвращаем null, чтобы не отрисовывать ничего
}
};
export default MyComponent;
import React from 'react';
const renderContent = (status) => {
switch (status) {
case 'loading':
return <p>Loading...</p>;
case 'error':
return <p>Error occurred!</p>;
case 'success':
return <p>Data loaded successfully!</p>;
default:
return null;
}
};
const MyComponent = ({ status }) => {
return (
<div>
{renderContent(status)}
</div>
);
};
export default MyComponent;
import React from 'react';
const MyComponent = ({ isLoggedIn, userName }) => {
return (
<div>
{(() => {
if (isLoggedIn) {
return <p>Welcome back, {userName}!</p>;
} else {
return <p>Please log in.</p>;
}
})()}
</div>
);
};
export default MyComponent;
Офер в Яндекс для опытных фронтендеров за два дня
15–16 февраля приглашаем фронтендеров с опытом работы от пяти лет получить офер в Яндекс через multitrack за 2 дня. Достаточно пройти несколько технических секций 15 февраля, чтобы уже 16-го получить офер и выбрать три команды, к которым вам было бы интересно присоединиться.
Как правило, за несколько собеседований сложно понять, подходит ли вам команда и наоборот. Multitrack позволит вам поработать в трёх разных командах Яндекса и выбрать подходящую. Вы сможете погрузиться в рабочие процессы, познакомиться с будущими коллегами и понять, с какими задачами и технологиями хотите работать.
Узнать подробности и зарегистрироваться.
Реклама. ООО "Яндекс". ИНН 7736207543
Оптимизация React-приложений
Веб-приложения сегодня требуют всё большей интерактивности, отзывчивости и быстродействия. В ответ на это команда React постоянно совершенствует инструментарий, позволяющий нам тонко управлять рендерингом и пользовательским опытом. Если вы работали только с классическими методами оптимизации вроде useMemo, useCallback, мемоизации компонент через React.memo и другими известными приёмами, то вас могут заинтересовать следующие хуки:
useTransition - устанавливает приоритеты рендеринга, разделяя обновления на критические и фоновые.
useDeferredValue - откладывает обновление тяжёлых значений, чтобы интерфейс не фризился при вводе данных.
useOptimistic - помогает реализовать оптимистичные обновления "из коробки".
В этой статье мы разберём ключевые идеи каждого из этих хуков и рассмотрим практические примеры, чтобы стало ясно, как и когда их применять.
👉 @frontendInterview
Цифровизация бизнеса: советы из первых уст
Хотите идти в ногу с цифровыми трендами? В канале «Цифровизируй это» команда российского вендора корпоративного ПО VK Tech делится опытом и рассказывает, как технологии помогают бизнесу работать эффективнее.
Подписывайтесь, чтобы:
✅ узнать, какие решения работают в реальных кейсах;
✅ перенять опыт тех, кто сам разрабатывает технологии для цифровизации.
Будьте в курсе того, что движет бизнес вперед.
Подписаться
#реклама
О рекламодателе
Готовишься к собеседованию?
Разбираем для тебя самые актуальные вопросы для подготовки
Выбирай направление:
👩💻 Frontend
🖥 Backend
👩💻 JS
👩💻 Python
👩💻 Go
👩💻 Java
👩💻 C/C++
👩💻 C#
👩💻 PHP
👩💻 QA
📊 SQL
👩💻 Git
Count consonants
Напишите функцию, которая принимает строку англоязычного текста и возвращает количество согласных в строке.
Согласные - это все буквы, используемые для написания английского языка, за исключением гласных a, e, i, o, u.
Пример:
consonantCount('') => 0
consonantCount('aaaaa') => 0
consonantCount('XaeiouX') => 2
Зачем нужен Webpack?
Webpack — это мощный инструмент сборки модулей для современных JavaScript-приложений. Он используется для упаковки и оптимизации всех ресурсов вашего приложения, таких как JavaScript, CSS, изображения и другие файлы, в один или несколько файлов, которые можно эффективно загрузить в браузер.
Основные функции
1. Сборка модулей (Module Bundling)
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',
};
// webpack.config.js
module.exports = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js',
},
};
// 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'],
},
},
},
],
},
};
Мебель Lioste – сочетание эргономики и эстетики
Мебель Lioste сохраняет традиции итальянских мастеров и дизайнеров.
Что это значит для нас:
- элегантный декор
- продуманность и удобство
- сочетание комфорта, функциональности
- филигранное сочетание рациональности и эмоций
Да, весь этот микс представлен в наших коллекциях в Три Кита и Гранд.
Есть шикарные столы и стулья, диваны, комоды и тумбы.
Будем рады поделиться с вами нотками солнечной Сицилии в зимней Москве!
Перейти на сайт
#реклама
lioste.ru
О рекламодателе
Почему джуны путаются в асинхронном коде (и как научиться с ним работать)
Асинхронная модель — одна из самых сложных и одновременно важных тем в современном программировании, особенно в веб‑разработке. Если посмотреть на боль новичков (да и не только новичков), то одна из самых частых жалоб — непонимание, что там происходит под капотом, почему код скачет и не дает предсказуемых результатов, или почему программа не ждет выполнения функции.
В этой статье разберем, в чем корень путаницы, какие есть ключевые концепции асинхронности, и как к ним прикипеть, чтобы перестать путаться и научиться эффективно писать, отлаживать и поддерживать асинхронный код.
👉 @frontendInterview
Как сделать градиентную границу у кнопки?
В этой статье рассматривается CSS свойство background-clip и его значение border-area, при помощи которого можно создавать уникальные границы блоков.
👉 @frontendInterview