Канал для подготовки к собеседованиям по фронтенду Админ, сотрудничество, реклама: @seniorFrontPromo, @maria_seniorfront Менеджер по рекламе: @Spiral_Yuri Купить рекламу: https://telega.in/c/frontendinterview Канал в реестре РКН: https://rknn.link/su
Как развернуть строку в JS?
Есть несколько способов развернуть строку. Один из наиболее распространенных способов — это преобразование строки в массив, разворот массива и затем преобразование массива обратно в строку.
Использование методов массива split, reverse и join
function reverseString(str) {
return str.split('').reverse().join('');
}
console.log(reverseString('hello')); // 'olleh'
function reverseString(str) {
let reversed = '';
for (let i = str.length - 1; i >= 0; i--) {
reversed += str[i];
}
return reversed;
}
console.log(reverseString('hello')); // 'olleh'
function reverseString(str) {
if (str === '') {
return '';
} else {
return reverseString(str.substr(1)) + str[0];
}
}
console.log(reverseString('hello')); // 'olleh'
function reverseString(str) {
return [...str].reduce((acc, char) => char + acc, '');
}
console.log(reverseString('hello')); // 'olleh'
function reverseString(str) {
return Array.from(str).reduceRight((acc, char) => acc + char, '');
}
console.log(reverseString('hello')); // 'olleh'
Бесплатный эфир для родителей от Университета Иннополис
📚Как обучение ИТ-навыкам может повысить успеваемость в школе?
🎓Какие преимущества в будущем есть у детей, умеющих программировать?
💻Зачем программирование "гуманитарям" и могут ли такие дети его освоить?
⚡Как можно бесплатно попробовать ИТ-обучение в школе ведущего ИТ ВУЗа страны, чтобы удостовериться, что такое хобби действительно подходит Вашему ребёнку?
Получить ответы на эти вопросы и задать собственные Вы можете на вебинаре для родителей 19 декабря в 19:00 по МСК
Регистрируйтесь, чтобы помочь своим детям стать успешными!
Зарегистрироваться
#реклама 16+
progmatica.innopolis.university
О рекламодателе
2 небанальных софт-скила для роста в IT-карьере
Вы наверняка замечали, что некоторые сотрудники растут в компаниях быстрее остальных:
- им доверяют более сложные задачи,
- они быстрее становятся лидерами коллектива,
- их доходы растут в разы быстрее.
Почему так происходит? Что их выделяет, среди остальных? Ответ в статье.
👉 @frontendInterview
Помощь в трудоустройстве в IT-сфере!
В России из-за дефицита айтишников запустили бесплатную программу по обучению IT-специалистов. Теперь любой желающий может попробовать себя в IT с полного нуля и начать обучение бесплатно!
Узнайте про дальнейшее трудоустройство в ведущие IT-компании для восполнения кадрового дефицита.
Для этого нужно:
- Перейти по ссылке
- Заполнить анкету и ответить на вопросы (занимает менее 3 минут)
- На основании ваших ответов вы сразу узнаете, подходит ли вам сфера IT и сможете ли вы в ней работать
Перейти на сайт
#реклама 16+
urban-university.ru
О рекламодателе
IT-компания ASTON запускает бесплатное онлайн-обучение "Java-разработчик"! 🎄
🌟 Лучшие участники получат приглашение на стажировку с трудоустройством в ASTON.
🤩 На этапе Лаборатории стипендия до 23 000 RUB, первая зарплата — от 70 000 RUB.
📚 Обучение в 3 ступени:
📌 I: онлайн-курс (1 месяц);
📌 II: онлайн-интенсив (2 месяца);
📌 III: Лаборатория (3–4 месяца) с трудоустройством.
🗓 Старт I ступени: 23 декабря 2024
⏳ Длительность: 1 месяц, 2 раза в неделю, вечерние занятия (1–1,5 часа).🌍 Где набираем: Россия (до GMT+7).📋 Требования: базовые знания Java, законченное высшее или профильное среднее образование.
🚀 Расти в IT вместе с ASTON.
📥 Регистрация
#реклама
О рекламодателе
Что нужно сделать, чтобы поменять данные в хранилище redux?
Чтобы изменить данные, нужно выполнить несколько шагов: создать действие (action), определить редюсер (reducer), который будет обрабатывать это действие и обновлять состояние, и затем отправить действие (dispatch action) в хранилище. Рассмотрим эти шаги более подробно.
Шаги для изменения данных в хранилище:
Создание действия (action)
Это объект, который описывает, что должно произойти. Он должен содержать как минимум свойство type
, которое указывает на тип действия. Дополнительно можно добавить любые данные, которые нужны для обновления состояния.
// actions.js
export const increment = () => ({
type: 'INCREMENT',
});
export const decrement = () => ({
type: 'DECREMENT',
});
export const setValue = (value) => ({
type: 'SET_VALUE',
payload: value,
});
// 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,
};
case 'SET_VALUE':
return {
...state,
count: action.payload,
};
default:
return state;
}
};
export default counterReducer;
createStore
из библиотеки Redux. Хранилище объединяет редюсеры и обеспечивает централизованное управление состоянием.// store.js
import { createStore } from 'redux';
import counterReducer from './reducer';
const store = createStore(counterReducer);
export default store;
// index.js
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import App from './App';
import store from './store';
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
);
useSelector
и useDispatch
из библиотеки react-redux
.// App.js
import React from 'react';
import { useSelector, useDispatch } from 'react-redux';
import { increment, decrement, setValue } from './actions';
const App = () => {
const count = useSelector(state => state.count);
const dispatch = useDispatch();
return (
<div>
<h1>Counter: {count}</h1>
<button onClick={() => dispatch(increment())}>Increment</button>
<button onClick={() => dispatch(decrement())}>Decrement</button>
<button onClick={() => dispatch(setValue(10))}>Set to 10</button>
</div>
);
};
export default App;
Testing 1-2-3
Напишите функцию, которая принимает массив строк и возвращает каждую строку, дополненную нужным номером
Нумерация начинается с 1. Обратите внимание на двоеточие и пробел между ними
Пример:
[] --> []
["a", "b", "c"] --> ["1: a", "2: b", "3: c"]
Концептуальные офисы в БЦ RUNOVSKY 14
Концептуальное офисное пространство для работы, расположенное в историческом центре Москвы в районе Замоскворечье. Проект имеет свой неповторимый характер. Переосмысление стиля ар-деко нашло свое отражение в черных фасадах с арочным остеклением.
БЦ находится в 2 минутах ходьбы от метро "Новокузнецкая", через которую проходят основные пешие маршруты до Третьяковской галереи, парка Зарядья и Московкского Кремля.
Проектом предусмотрено большое количество планировочных решений офисов площадью от 27 м2 с возможностью объединения смежных помещений.
Тех, кто решит купить лот в "RUNOVSKY 14", ждет премиальный сервис, безопасность и комфортная атмосфера.
Перейти на сайт
#реклама
зиккурат.рф
О рекламодателе
📶 С 1 декабря для граждан РФ открыт доступ к платным материалам по программированию
Вот отсортированные базы с тонной материала(книги, курсы, ресурсы и гайды). Выбирай своё направление::
👩💻 Frontend 👩💻 PHP
⚙️ Backend 👩💻 Моб. Dev
📱 GitHub 👩💻 GameDev
🤓 Всё айти 👩💻 DevOps
👩💻 Python 🖥 Data Science
👩💻 Java 🐞 Тестирование
👩💻 C# 🤔 Хакинг & ИБ
👩💻 С/С++ 📱 Маркетинг
🖥 SQL 🖥 Дизайн
👩💻 Golang 👣 Rust
Скачивать ничего не нужно — все выложили в Telegram с доступом по ссылке
Ищем новичков во фронтенд-разработке и вёрстке сайтов.
Хотим показать, как получить реальный опыт в разработке сайтов и веб-приложений.
А именно:
- Сверстать веб-сайт на HTML + CSS;
- Реализовать функционал на JavaScript;
- Пощупать фронтенд-фреймворк Angular;
- Подключить Backend и загрузить сайт на хостинг.
Чтобы в итоге ты своими руками разработал качественный сайт, который не стыдно добавить в портфолио или продать.
Такой опыт можно получить на бесплатном практикуме уже завтра с поддержкой от опытных кураторов на каждом этапе.
👉 Приходи на бесплатное обучение и зови с собой друзей
Бонусом получишь гайд для поиска работы и заказов на фронтенд-разработку.
Собеседование — битва к которой нужно подготовиться
Ты ищешь первую работу или решил сменить работу? Поздравляю! Впереди тебя ждет карусель интересных приключений: от собеседований и до ожидания обратной связи. Я провел немало собеседований, и у многих кандидатов есть одна общая ошибка — отсутствие подготовки. Они идут напролом, что заслуживает уважения, но можно облегчить себе путь, если подготовиться заранее. Ниже я опишу простые способы подготовки. Однако помни: не стоит затягивать с выходом на собеседования. Подготовка не должна превращаться в бесконечное "а вот этот вопрос изучу поглубже, этот курс пройду, еще видео посмотрю". Не превращайся в "вечного студента". Скорее всего, все нужные знания у тебя уже есть; главное — их УПАКОВАТЬ (как бы инфоцыгански это ни звучало).
👉 @frontendInterview
Как клонировать репозиторий на GitHub?
Чтобы клонировать репозиторий, нужно установить на компьютер Git CLI. Как это сделать описано в статьях «Системы управления версиями» и «Git CLI».
Выполните в терминале команду:
git clone <ссылка на репозиторий>
❓ Хотите создать свою первую веб-страницу с нуля? Без магии и кодерских заклинаний — только HTML, CSS и ваши идеи!
👉 На открытом вебинаре «Создаем свою первую страницу: HTML и CSS» вы узнаете, как работают основные элементы веб-разработки: от структуры HTML до современной стилизации с CSS.
Мы разберем шаги, которые помогают создать не просто страницу, а основу для вашего портфолио или будущего сайта!
💪 Это ваш шанс научиться веб-разработке, используя простой и мощный инструментарий. Уже на вебинаре вы создадите свою первую веб-страницу — с текстом, картинками и уникальным дизайном!
⏰ Регистрируйтесь на открытый урок 3 декабря в 19:00 мск! Урок проходит в преддверии старта курса «Fullstack Developer», участники вебинара получат скидку на обучение.
👉 Для участия зарегистрируйтесь: https://vk.cc/cFAkGE
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru erid 2SDnjePUVLF
Гайд «Как собственнику управлять отделом маркетинга?»
Одна из главных ошибок собственников бизнеса — это попытка быть везде и сразу. Как учит любой успешный инвестор, важно не работать на деньги, а заставлять их работать на тебя. То же самое касается и маркетинга. Если вы думаете, что можете взять на себя роль маркетолога и управлять компанией одновременно — вы теряете время и деньги💰. Маркетинг — это не про удачу или интуицию. Это система, построенная на знаниях, опыте и анализе. Собственник должен концентрироваться на стратегических решениях, а не тонуть в операционных задачах отдела маркетинга.
Скачайте наш бесплатный гайд, чтобы узнать, как создать такой маркетинговый отдел, который будет работать на вас, принося результат, а не отвлекая от главного✅.
Скачать
#реклама 16+
cmonster.io
О рекламодателе
JavaScript From Zero to Hero
Cамое полное руководство на свете. Освойте современный JavaScript, даже если вы новичок в программировании
👉 @frontendInterview
Наглядно
👉 @frontendInterview
✅️ GitHub теперь в Telegram!
Подписывайтесь: @GitHub
🚀 С нуля до миддл+ за год с зп 275тр.
👨💻 Один из учеников ментора с опытом 7+ лет во фронтенде получил такой апгрейд.
На канале можно найти авторский материал и обучающую информацию как быстрее и проще устроиться на работу.
Также есть разборы заданий и помощь в прохождении собеседований.
Чему можно обучиться?
1. Теория + Практика (JavaScript, React)
2. Усиление soft skills
3. Узнать про фишки и лайфхаки по написанию резюме и прохождению собседований
Подписывайся и получай полезный контент!
Как настроить доступ по SSH на GitHub
GitHub позволяет получить доступ к репозиториям по протоколу SSH (Secure Socket Shell). Это безопасный способ передачи данных по сети. Для того чтобы настроить доступ, добавьте свой публичный ключ на GitHub. Это делается в несколько шагов, подробно описанных в статье.
👉 @frontendInterview
😱 Вот и всё! Теперь вам не нужно сливать деньги на дорогие курсы по фронтенд-разработке — всё необходимое для обучения доступно совершенно бесплатно!
Всё, что нужно для изучения фронтенда: полное руководство по HTML, CSS, а также практические гайды — @made_in_html_css.
Детальный анализ материалов по FRONTEND-разработке. При этом информация представлена в лёгком и доступном формате, который делает процесс обучения увлекательным и ненадоедливым!
Не упустите шанс подписаться на этот уникальный канал — Made in HTML/CSS
Бесплатный курс по дизайну в FIGMA
Онлайн-программа с наставником и чатом.
Осторожно! 80% практики.
По результату обучения у вас будет портфолио из нескольких работ.
Сертификат о прохождении курса.
Возможность пройти полное обучение и получить гарантированное трудоустройство!
Учитесь дизайну у профессионалов.
Переходи по кнопки: "Узнать больше" и начинай свое обучение.
Доступ 0 руб.
Узнать больше
#реклама 16+
yudaevschool24.online
О рекламодателе
Введение в веб-разработку на языке JavaScript: учебное пособие
В учебно-методическом пособии рассматриваются фундаментальные основы и прикладные аспекты использования языка JavaScript для клиентской и серверной разработки веб-ресурсов. Проанализированы основные тенденции развития наиболее распространённого языка клиентского веб-программирования в свете внедрения новых стандартов ECMAScript.
👉 @frontendInterview
Как проверить, что поле является массивом ?
Для проверки, является ли поле массивом, можно использовать несколько методов. Самый распространенный и рекомендуемый способ — это использование метода Array.isArray()
. Этот метод проверяет, является ли переданное значение массивом, и возвращает true
или false
.
Пример
const arr = [1, 2, 3];
const notArr = "Hello";
console.log(Array.isArray(arr)); // true
console.log(Array.isArray(notArr)); // false
instanceof
:Array
.const arr = [1, 2, 3];
const notArr = "Hello";
console.log(arr instanceof Array); // true
console.log(notArr instanceof Array); // false
Object.prototype.toString.call()
:Object.prototype.toString.
const arr = [1, 2, 3];
const notArr = "Hello";
console.log(Object.prototype.toString.call(arr) === '[object Array]'); // true
console.log(Object.prototype.toString.call(notArr) === '[object Array]'); // false
- Может давать неверные результаты, если массив создан в другом контексте (например, в iframe).
- Object.prototype.toString.call():
- Универсальный метод для проверки различных типов объектов.
- Меньше подвержен проблемам с контекстом, но выглядит менее читаемым по сравнению с Array.isArray().
Правда...
👉 @frontendInterview
Пишите код быстрее и оставляйте больше времени на творчество вместе с AI-ассистентом разработчика
Устали от рутины? Отдайте ее AI!
Заходите на платформу GitVerse и пишите код вместе с AI-ассистентом GigaCode. Он поддерживает более 35 языков, умеет анализировать контекст, дописывать строки и функции в автоматическом и ручном режимах, а еще — писать код по комментариям и делать рефакторинг с помощью коротких команд. Всего за пару минут AI-помощник может оценить проект и трудозатраты на его создание.
Внутри AI есть функция CodeChat — с ней можно оптимизировать или отрефакторить имеющийся код, сгенерировать тесты и документацию, а также объяснить фрагмент кода. Задавать вопросы можно и по всему открытому файлу, и по конкретному фрагменту — просто выделите его в редакторе и сформулируйте запрос к CodeChat.
Хорошие новости — недавно GigaCode обновился и стал еще лучше справляться с задачами разработки: теперь наиболее вероятные продолжения кода будут генерироваться с учётом контекста всего проекта. Не забудьте обновить плагин GigaCode :)
Зарегистрироваться на GitVerse.
Открытый вебинар "Создание веб-компонентов и использование Shadow DOM"
🎁Полный обзор веб-компонентов: создание независимых, повторно используемых элементов интерфейса на чистом JavaScript и Shadow DOM
На практике изучите:
- Изоляция стилей и поведения, создание защищенных компонентов.
- Примеры создания интерфейсов, работающих с нативным JavaScript и интегрируемых с фреймворками, такими как React и Vue, где уже есть поддержка для веб-компонентов.
Что узнают участники?
✅ Как создать нативные веб-компоненты с использованием JavaScript и Shadow DOM — мощные, инкапсулированные элементы для долгосрочной поддержки.
🤖 Методы работы с Shadow DOM — независимость от остального кода и адаптация под любые задачи
❓ Почему веб-компоненты — это фундамент для универсальных интерфейсов, и как фреймворки уже используют эти принципы, давая возможность легко внедрять и масштабировать элементы.
🔥Регистрируйтесь на урок 4 декабря, в 20:00 мск и получите скидку на большое обучение «JavaScript Developer. Professional»: https://vk.cc/cFDEU6
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 erid 2SDnjerK15V
Как снизить затраты на разработку UI? / Как масштабировать изменения в UI без лишних затрат? / Как экономить на разработке UI без потери качества?
Узнайте 18 декабря на бесплатном вебинаре СберТеха «UI-выгорание, или что не так с бренд-дизайном приложений».
Эксперты СберТеха поделятся опытом собственных проектов и расскажут, как создали решение, которое в разы ускоряет разработку и масштабирование изменений UI.
Platform V One UI — библиотека UI-компонентов с трехуровневой дизайн-токен системой, а также low-code инструментами стилизации и генерации UI-форм и сценариев.
Также на вебинаре узнаете, какие инструменты Platform V One UI доступны в open source, и увидите демо продукта.
Регистрируйтесь и приходите!
Как можно скопировать объект в JS?
Есть несколько способов скопировать объект. Важно понимать разницу между поверхностным (shallow) и глубоким (deep) копированием. Поверхностная копия копирует только сам объект и его непосредственные свойства, в то время как глубокая копия копирует весь объект и все его вложенные объекты.
Поверхностное копирование
1. Метод Object.assign
копирует все перечисляемые свойства из одного или более исходных объектов в целевой объект.
const original = { a: 1, b: 2 };
const copy = Object.assign({}, original);
console.log(copy); // { a: 1, b: 2 }
...
) также можно использовать для создания поверхностной копии объекта.const original = { a: 1, b: 2 };
const copy = { ...original };
console.log(copy); // { a: 1, b: 2 }
undefined
значений.const original = { a: 1, b: { c: 2 } };
const copy = JSON.parse(JSON.stringify(original));
console.log(copy); // { a: 1, b: { c: 2 } }
function deepCopy(obj) {
if (obj === null || typeof obj !== 'object') {
return obj;
}
if (Array.isArray(obj)) {
const arrCopy = [];
for (let i = 0; i < obj.length; i++) {
arrCopy[i] = deepCopy(obj[i]);
}
return arrCopy;
}
const copy = {};
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
copy[key] = deepCopy(obj[key]);
}
}
return copy;
}
const original = { a: 1, b: { c: 2 } };
const copy = deepCopy(original);
console.log(copy); // { a: 1, b: { c: 2 } }
const _ = require('lodash');
const original = { a: 1, b: { c: 2 } };
const copy = _.cloneDeep(original);
console.log(copy); // { a: 1, b: { c: 2 } }
Training JS #7: if..else and ternary operator
Функция принимает 1 параметр: n, n - это количество хот-догов, которые купит клиент, за покупку нескольких штук предусмотрены скидки. Сколько денег потратит клиент, чтобы купить указанное количество хот-догов?
n < 5 $100
n >= 5 и n < 10 $95
n >= 10 $90
Пример:saleHotdogs( 1 ) => 100
saleHotdogs( 5 ) => 475
saleHotdogs( 10 ) => 900
ТОП-4 Курса по Программированию
⚡Tutortop — маркетплейс курсов №1 по количеству школ-партнеров, курсов и реальных отзывов студентов.
✅Хотите стать программистом, но не знаете с какого языка начать?
Помогаем разобраться в самых популярных и востребованных языках программирования.
Подарок в конце подборки!
Выбрать
#реклама 16+
tutortop.ru
О рекламодателе