Библиотека фронтендера | Frontend, JS, JavaScript, React.js, Angular.js, Vue.js
21.9K subscribers
2.71K photos
183 videos
40 files
5.07K links
Все самое полезное для фронтенда в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/77178ed4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5b6884689c2151c820bb4
Download Telegram
📦 Почему [] == ![] возвращает true

Кажется нелогичным: пустой массив и его отрицание — но результат true. Разберём по шагам (по спецификации ECMAScript 262):

1️⃣ Оператор ![]

- [] приводится к true, потому что любой объект в JS — truthy.
- !true даёт false.

Итак, ![] → false.

2️⃣ Сравнение [] == false

- По правилам нестрогого сравнения (==), если один операнд — объект, он приводится к примитиву (ToPrimitive).
- [] → "" (пустая строка).

Теперь выражение выглядит так: "" == false.

3️⃣ Сравнение "" == false

- false → 0, "" → 0.
- 0 == 0 → true.

Итог: [] == ![] возвращает true из-за цепочки приведений типов.

🐸 Библиотека фронтендера

#career_merge
Please open Telegram to view this post
VIEW IN TELEGRAM
14🥱3👍1😁1
Каким будет результат

Опрос ниже 🔜

🐸 Библиотека фронтендера

#code_challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍1
🧠 Готовишься к собесам, а ноутбук еле тянет IDE?

Самое время прокачать скиллы и апгрейднуть железо!

Proglib Academy разыгрывает MacBook Pro 14 (M3 Pro, 36 GB, 1 TB SSD) 💻

Купи любой наш курс до 15 ноября → пройди 2 недели обучения → напиши куратору #розыгрыш. Всё, ты в игре!

📚 Среди курсов:

▫️ Алгоритмы и структуры данных — топ для подготовки к собесам в Яндекс и FAANG.

▫️ Архитектуры и шаблоны проектирования — чтобы думать как senior.

▫️ Python, математика для DS, основы IT и другие направления.

👉 Принять участие
🥰4🥱41
😱 Потерянный this в обработчике

Когда метод объекта передаётся как колбэк, он теряет контекст (см. фото). После клика в консоли будет undefined.

Почему так:

this зависит от способа вызова функции, а не от места, где она объявлена.

При передаче метода как ссылки (btn.handleClick) контекст теряется — this больше не указывает на объект.


Как исправить:

1. Явно привязать контекст


button.addEventListener('click', btn.handleClick.bind(btn));


2. Использовать стрелочную функцию


button.addEventListener('click', () => btn.handleClick());


💡 Стрелочные функции не имеют собственного this, они берут его из внешнего контекста — поэтому работают как ожидается.

#hotfix #js
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰31👍1
💡 Scope Chain: как JS ищет переменные вверх по цепочке

Иногда переменная с нужным именем вроде бы существует — но скрипт выбрасывает ReferenceError.

ℹ️ Почему так происходит и как именно JavaScript ищет значения в разных областях видимости — рассказываем в карточках.

🐸Библиотека фронтендера

#under_hood #js
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰3
🔗 Что почитать

Rust вместо React: как я написал Telegram WebApp SDK

Эксперимент разработчика, который переписал фронт для Telegram-ботов на Rust и разобрался, где язык реально выигрывает у JS.

Frontend Security: The Most Ignored Skill Every Developer Needs in 2025

Medium-разбор, почему XSS, CSP и supply-chain атаки всё ещё ломают SPA, и как встроить безопасность в CI/CD.

Почему Google Переводчик «ломает» React (и другие веб-приложения)

Автор показывает реальные кейсы, обходные пути и поднимает важный вопрос: имеет ли фреймворк право на полный контроль над DOM?

🐸 Библиотека фронтендера

#read_watch #react #js #ts
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰3🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🏓 Table tenniCSS

Мини-анимация, созданная только с помощью HTML и SCSS, без единой строки JS.

Отличный пример того, насколько мощными могут быть CSS-анимации.

🔗 Попробуйте запустить демо на CodePen

🐸 Библиотека фронтендера

#readme #css
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3🥰2
🎁 Конкурс от Proglib Academy!

Кстати, если кто-то ещё не в курсе — у нас тут раздают MacBook Pro 14.
Да-да, не шутка, настоящий, железный, с M3 Pro

Но! Чтобы успеть пройти 2 недели обучения к 15 ноября, курс нужно взять до конца октября — и сейчас на всё скидка 40%.

Чтобы поучаствовать, нужно:

1️⃣ Покупаешь любой курс до конца октября;
2️⃣ Проходишь 2 недели обучения к 15 ноября;
3️⃣ Написать куратору в чат #розыгрыш.

До 15 ноября, потом всё — поезд (и макбук) уйдёт.

👉 Участвовать в розыгрыше
🥰1
💛 Hooks как слой бизнес-логики

В React кастомные хуки (useAuth, useCart, useFetch) — это не просто удобство, а полноценный слой бизнес-логики.

ℹ️ Они инкапсулируют сложные процессы (аутентификация, запросы, кеширование) и позволяют компонентам оставаться декларативными и чистыми.

📖 По документации React:

“Custom Hooks let you extract component logic into reusable functions.”
“By convention, a custom Hook’s name starts with ‘use’.”


Что это даёт:

— изолированная логика вне UI;
— переиспользуемые мини-сервисы;
— лаконичные компоненты.

Пример:


function useAuth() {
const [user, setUser] = useState(null);

const login = async (creds) => { /* запрос к API */ };
const logout = () => setUser(null);

return { user, login, logout };
}


🔥 Еще больше полезного на курсе «Архитектуры и шаблоны проектирования» (−40%)

🐸 Библиотека фронтендера

#blueprint
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰1