CodeRoll | Frontend
Открыть в Telegram
OZ — Лучшее для разработчика и дизайнера / IT инструменты, курсы и книги — Веб-разработка на JS, HTML, CSS, React, Vue,Angular Купить рекламу: https://telega.in/c/coderoll Чат: https://t.me/coderoll_chat По всем вопросам пишите сюда - @yankovsky_ads
Больше4 229
Подписчики
-124 часа
-67 дней
-5230 день
Архив постов
4 228
Frontend Cringe — канал для начинающих и продвинутых веб-разработчиков, который научит вас программировать лучше и эффективнее.
публикуются:— обзоры JavaScript и CSS-библиотек;— обучающие статьи;— советы бэкенд и фронтенд-разработчикам.
Ссылка
4 228
JavaScript повсюду или почему веб-технологии захватили мир
Я давно слежу за развитием веб-технологий и каждый раз, натыкаясь на очередной холивар в интернете про злой и страшный JavaScript, залезающий на чужую территорию, инстинктивно хочу побыть его адвокатом. Обычно все мои доводы сводятся к банальному “не мы такие, жизнь такая” или “ничего личного, просто бизнес”, но в этот раз захотелось развернуто обосновать причины популярности веб-технологий.
Ссылка
#js
4 228
Бинарный поиск
Бинарный поиск гораздо более эффективный в сравнении с линейным поиском.
Бинарный поиск основан на идее деления данных на половины и последующем поиске в одной из них с последующим делением.
Принцип бинарного поиска
Предположим, что в нашем отсортированном списке чисел от 1 до 100 мы будем искать число 87.
Ссылка
#js
4 228
Когда мы передаем несколько промисов методу Promise.race, он разрешает/отклоняет первый промис, который разрешается/отклоняется. В метод setTimeout мы передаем таймер: 500 мс для первого промиса (firstPromise) и 100 мс для второго промиса (secondPromise). Это означает, что secondPromise разрешается первым со значением 'два'. res теперь содержит значение 'два', которое выводиться в консоль.
4 228
const firstPromise = new Promise((res, rej) => {
setTimeout(res, 500, 'один');
});
const secondPromise = new Promise((res, rej) => {
setTimeout(res, 100, 'два');
});
Promise.race([firstPromise, secondPromise]).then(res => console.log(res));4 228
Причины говнокода во фронтенде.
Как известно, изначальной задачей JavaScript было обеспечение интерактивности на HTML-странице, и предназначался язык, в первую очередь, для верстальщиков и дизайнеров, а для программистов предлагалось использовать интегрируемые в страницу Java-апплеты. И, несмотря на сходство в названии с Java, общего у JS с нею было только оно да C-подобный синтаксис. Под капотом же JavaScript был значительно вдохновлен языком Scheme, но именно этому странному языку, написанному в кратчайшие сроки, суждено было стать одним из самых популярных на планете, и решать задачи, для которых он никогда не проектировался.
Ссылка
#статьи
4 228
Окей, я джуниор, как начать управлять?
Когда я только пришел в мир IT, для меня, как и, наверняка, для вас, было много чего непонятного и неизученного. Это было мостиком моей мотивации, удерживающим меня в этой индустрии, но по мере того как ты завязываешь в узелок все свои накопленные знания, появляется уверенность в кое-какой стабильности, а следовательно — новый вопрос.
Cсылка
#статьи
4 228
Думаешь, что программирование это про код?
В 2024 году пишут код даже 10-летние, а еще лучше нейронки. Самый ценный навык разработчика — это умение быстро обучаться и развитиваться. Чем быстрее ты начинаешь применять новые знания, тем ценнее ты на рынке. А чтобы быть в топе, учиться нужно всегда.
Для этого всего-то нужно:
ходить на митапы
читать блоги БигТеха
общаться с сильном комьюнити
следить за новинками из мира IT
Чтобы собрать все эти ресурсы требуются года, куда легче читать канал XOR. Здесь команда разработчиков постоянно следит за трендами, делится опытом и упрощает жизнь.
Подпишись, стать 10х-программистом проще, чем кажется: @xor_journal
4 228
Объяснения к задаче выше
Обычные функции не могут быть остановлены на полпути после вызова. Однако функцию генератор можно "остановить" на полпути, а затем продолжить с того места, где она остановилась. Каждый раз, когда в функции-генераторе встречает ключевое слово yield, функция возвращает значение, указанное после него. Обратите внимание, что функция генератора в этом случае не return значение, оно yields значение.
Сначала мы инициализируем функцию генератор с i, равным 10. Мы вызываем функцию генератор, используя метод next (). Когда мы в первый раз вызываем функцию генератора, i равно 10. Он встречает первое ключевое слово yield, получая значение i. Генератор теперь "приостановлен", и 10 выводится в консоль.
Затем мы снова вызываем функцию с помощью метода next (). Она запускается с того места, где остановилась ранее, все еще с i, равным 10. Теперь он встречает следующее ключевое слово yield и возвращает i 2. i равно 10, поэтому он возвращает 10 2, то есть 20. Это приводит к 10, 20.
4 228
function* generator(i) {
yield i;
yield i * 2;
}
const gen = generator(10);
console.log(gen.next().value);
console.log(gen.next().value);4 228
Нездоровое IT
Эта твоя айтишечка — злобная и нездоровая хуйня. И я тут не про раздутые зарплаты и формошлёпство говорю, а про обычное здоровье. Вот то, которое в 20 лет, как у коня, а к 30 годам уже болят колени, спина, да и зрение село.
Фиг его знает, что тут причина, а что следствие. Наверное, корни проблемы находятся где-то в нёрдовой культуре ранних (древних, гы) программистов. Они ж по-совместительству были любителями пиццы, пива, и полуночного красноглазия.
Ссылка
#статьи
4 228
Стилистические правила умерли, да здравствуют стилистические правила
Под конец прошлого года, по ряду причин, ESLint отказались от дальнейшей поддержки и развития стилистических правил. А тема, как по мне, несправедливо осталась в тени. Давайте разберемся, почему так произошло и какие изменения нас ждут на поприще статического анализа и форматирования кода.
Ссылка
#utils
4 228
Материалы из этого канала дают на платных курсах
Frontend Portal — настоящий портал для тех кто хочет стать востребованным frontend-разработчиком. Полезные ресурсы, шпаргалки, разбор вопросов с собеседований, задачи, викторины и многое другое
👉 Присоединяйтесь к @FrontendPortal и станьте частью дружного frontend-комьюнити!
4 228
В JavaScript есть только примитивы и объекты.
Типы примитивов: boolean, null, undefined, bigint, number, string, и symbol.
Отличием примитива от объекта является то, что примитивы не имеют свойств или методов. Тем не менее, 'foo'.toUpperCase() преобразуется в 'FOO' и не вызывает TypeError. Это происходит потому, что при попытке получения свойства или метода у примитива (например, строки), JavaScript неявно обернет примитив объектом, используя один из классов-оберток (например, String), а затем сразу же уничтожит обертку после вычисления выражения. Все примитивы кроме null и undefined ведут себя таким образом.
4 228
Особенности типов данных и преобразования в JavaScript
На первый взгляд тема типов данных и преобразований может показаться легкой.
Обычно она изучается в самом начале погружения в JavaScript. Однако в этих темах есть неочевидные подводные камни, которые знает далеко не каждый разработчик.
В этой статье мы рассмотрим особенности типов данных и преобразований, которые многие пропустили.
Ссылка
#js
4 228
JavaScript однопоточный или многопоточный? Ставим точку
Поводом для ревизии данного вопроса стало то, что я по сей день слышу от специалистов (в том числе позиционирующих себя как senior), что современный JavaScript является однопоточным. При этом они охотно задают этот вопрос на техническом интервью, вводя неуверенных кандидатов в заблуждение.
Ссылка
#js
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
