Веб-страница
24K subscribers
1.75K photos
534 videos
1 file
3.95K links
Всё по фронтенду, бэкенду и девопсу в одном месте

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/64ai
Download Telegram
Стрелочные и обычные функции в JavaScript: в чём разница?

В JavaScript функции — это основа работы с кодом, и их можно писать разными способами: с помощью обычных и стрелочных функций. На первый взгляд, они решают одну задачу — выполняют код, — но различия между ними влияют на то, как и где их лучше применять.

Давайте разберёмся, в чём заключаются эти различия, посмотрим на пример и выясним, когда какую функцию стоит использовать.

Обычные функции пишутся с использованием ключевого слова function, а стрелочные — с помощью более компактного синтаксиса =>.

//Обычная функция
function greet(name) {
return "Привет, " + name;
}

//Стрелочная функция
const greet = (name) => "Привет, " + name;


This. Одно из главных различий — как функции работают с контекстом this.

— В обычной функции this зависит от того, как её вызвали.
— В стрелочной функции this берётся из внешнего окружения и не меняется.
Это важно, когда вы работаете с объектами или обработчиками событий.

Аргументы. Обычные функции имеют встроенный объект arguments для доступа ко всем переданным параметрам, а стрелочные — нет (но можно использовать ...args).

Конструкторы. Обычную функцию можно использовать с new для создания объектов, стрелочную — нельзя.

Генераторы. Обычные функции поддерживают синтаксис function* для генераторов, стрелочные — нет.

Чтобы понять разницу работы с this на практике, рассмотрим пример с объектом:

const person = {
name: "Алекс",
sayHello: function() {
console.log("Привет, я " + this.name);
},
sayHelloArrow: () => {
console.log("Привет, я " + this.name);
}
};

person.sayHello(); // Привет, я Алекс
person.sayHelloArrow(); // Привет, я undefined


— В методе sayHello (обычная функция) this указывает на объект person, и мы получаем доступ к свойству name.

— В методе sayHelloArrow (стрелочная функция) this берётся из внешнего контекста (например, window), где name не определён, поэтому результат — undefined.
Этот пример показывает, почему выбор типа функции важен в зависимости от задачи.

Стрелочные функции отлично подходят для коротких коллбэков (например, в map или setTimeout) и случаев, когда не нужен собственный`this`.

Обычные функции нужно использовать в методах объектов, где важен динамический this, или когда нужны конструкторы и объект arguments.

Стрелочные и обычные функции в JavaScript — это инструменты с разными сильными сторонами. Понимание их различий поможет вам выбрать правильный подход для каждой ситуации.

#простымисловами #javascript
👍25🔥41
Media is too big
VIEW IN TELEGRAM
Собеседование фронтендера с 30-летним опытом

Максим Demi Murych знает спецификацию JS лучше самих создателей языка, занимается реверс-инжиниргом и оптимизацией JS-кода уже более 30 лет. Но даже он не смог дать ответы на некоторые вопросы собеса. Почему?

Это видео — прекрасная демонстрация того, что даже опытный разработчик не может знать все. Особенно, когда просят объяснить неправильные или неэффективные методы работы с кодом. Подробнее в видео.

#видео #javascript
🔥18👍51💩1
Сегодня отмечаем День Рунета!

7 апреля 1994 года был зарегистрирован национальный домен .ru, что ознаменовало рождение уникального пространства для всех пользователей русскоязычного интернета.

Сегодня домен .ru занимает 7-е место в мире по количеству зарегистрированных сайтов. Самые популярные домены — универсальный .com (156,3 млн сайтов), китайский .cn (19,7 млн) и немецкий .de (17,7 млн).

Желаем вам создать такой сайт, который войдет в историю Рунета и поможет домену .ru попасть в топ-3!

А с какого сайта началось ваше знакомство с Рунетом? Поделитесь в комментариях!
🔥14💩9😁2👍1
React vs Jmix: что выбрать для бизнес-приложений?

Разработка UI для бизнес-приложений — задача не из лёгких. React предлагает гибкость и широкую экосистему, но требует интеграции сторонних библиотек для полной функциональности. С другой стороны, Jmix предоставляет комплексное решение с готовыми инструментами для быстрой разработки, включая поддержку Kotlin и дизайн-тайм ролей. Однако выбор между ними зависит от специфики проекта и предпочтений команды. Подробнее о сравнении этих фреймворков читайте в статье.

#react #jmix
Проверяем безопасность собственного сайта с помощью web-check

Чтобы быть уверенными в том, что ваш сайт не взломают, нужно действовать на опережение. web-check — это OSINT-инструмент, который пользуются хакеры и можете воспользоваться вы сами. Он поможет вам проанизировать архитектуру проекта и выявить слабые места: IP-адреса, цепочку SSL, записи DNS, файлы cookie, заголовки страниц, информацию о домене, правила сканирования поисковых систем, карту сайта, местоположение сервера, реестр редиректов, открытые порты, расширения безопасности DNS, производительность сайта, трекеры, связанные имена хостов и даже углеродный след.

Кстати, абсолютно бесплатно.

#инструменты #osint #безопасность
🔥124👎1
Media is too big
VIEW IN TELEGRAM
Лучшие практики по работе с Context API в React приложении

Разбираемся как оптимизировать React приложение при работе с Context API: как лучше организовать код с добавлением кастомных хуков, и какую технику применить, чтобы избежать лишних рендеров там, где это не требуется.

Подробнее в видео: https://youtu.be/zmAL9revylc

#видео #react
8👍5
Полное визуальное руководство по пониманию цикла событий Node.js

Node.js устроен не так просто, как кажется. Промисы, таймеры, очередь задач... В какой момент всё это вообще исполняется?

Эта наглядная статья — как экскурсия по закулисью: вы увидите, как работает event loop, в каком порядке выполняются колбэки и почему иногда setTimeout с 0 мс ждёт дольше, чем ожидалось. Визуально, чётко и с примерами. Если вы хотите разобраться в цикле событий раз и навсегда — must read.

#nodejs
👍1
Управляем содержимым веб-страницы жестами

В этом туториале вы рассмотрите 5 примеров:

— получение данных с видеокамеры и их отрисовка на холсте (canvas);
— обнаружение и отслеживание кисти руки;
— управление «курсором» с помощью указательного пальца;
— определение жеста «щипок» (pinch);
— нажатие кнопки с помощью щипка.

Подробнее:

https://habr.com/ru/company/timeweb/blog/698286/

#фронтенд #javascript
🔥13👍32🤯1
This media is not supported in your browser
VIEW IN TELEGRAM
У Anime.js вышло крупное обновление

Библиотека для создания сложных анимаций в вебе на чистом JS получила обновление под номером 4.0. Кроме нового номера библиотека обзавелась поддежкой Web Animation API, новой модульной архитектурой, анимацией прокрутки и многим другим.

Все подробности на сайте проекта: https://animejs.com

#новости #библиотека #javascript #animejs
🔥421👍1
Media is too big
VIEW IN TELEGRAM
Stacked Cards

Видеоурок по созданию стопки карточек с анимацией на чистом CSS. Просто смотрим и повторяем.

#видео #фронтенд
👍3🔥3
А какой сегодня ты?

🤯 — объясняющий стажеру

🗿 — г*внокодящий
🗿106🤯11😁4
Небольшая шпаргалка по производительности баз данных

Здесь можно быстро посмотреть, что влияет на производительность и как её оптимизировать.

#шпаргалка #бд
2
Учим английский во время разработки

Как известно, без английского в программировании никуда. Конечно, если вы не пишите на 1С. Этот инструмент поможет вам подтянуть язык прямо во время кодинга.

Harper будет исправлять вам грамматические ошибки, которые вы совершаете во время написания кода в VS Code, либо текст в Obsidian. Для этого у него есть фирменные плагины. А ещё у него есть своя JS-библиотека для встраивания инструмента в ваши проекты.

Подробнее о возможностях и фишках: https://writewithharper.com

#инструменты
😁31👎1
Какие есть паттерны в React и для чего они нужны

За годы разработки вокруг React сформировались свои распространённые паттерны — способы организовать компоненты и логику так, чтобы код получался понятным, поддерживаемым и переиспользуемым.

В этой статье Юсуп Изрипов, разработчик в VK, расскажет о нескольких полезных паттернах в React. Здесь про Container & Presentational Components, Higher-Order Component (HOC) и паттерн Render Props.

#react #паттерны
5🔥1
Мастхэв для всех, кто хочет прокачать свои навыки программирования

В этом репозитории собраны пошаговые гайды, которые помогут создать с нуля все от 3D-рендера до собственной криптовалюты и торрент-сервера.

Гайды для разных ЯПов, так что точно найдете что-то подходящее для вас!
👍16👎2
7 каверзных вопросов для проверки знаний о JavaScript

Думаете, хорошо знаете JS? Проверьте себя. В статье — 7 вопросов, которые выглядят просто, но легко вводят в заблуждение: всплытие, приведение типов, область видимости, this и другие сюрпризы.

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

Попробуйте — как минимум узнаете что-то новое, как максимум — словите пару инсайтов.
👎11👍5🤔1
Как Google обрабатывает JavaScript в процессе индексации веб-страниц

Не всё, что рендерится на фронте, попадает в поисковую выдачу. Google обрабатывает JavaScript не сразу — сначала HTML, потом очередь на рендер, потом только индекс.

В статье разбирается, как именно работает этот процесс:
— как влияет задержка рендера;
— почему важно не прятать важный контент за JS;
— и как ускорить индексацию динамичных страниц.

Если вы пишете SPA или SSR — точно стоит прочитать.

#javascript
Какие есть паттерны в React и для чего они нужны: часть 2

Паттерны проектирования — ключ к эффективной разработке на React. Во второй части цикла статей Senior Dev из Вконтакте показал, как различные паттерны могут улучшить структуру и производительность. Хуки + серверные компоненты = будущее.

p.s. Первая часть здесь.

@prog_tools
👍9
Небольшая шпаргалка по методам для работы с массивами

Визуализация, которая лучше тысячи слов показывает, что делает каждый из методов.

#javascript #шпаргалка
36👍13😁3💩1
This media is not supported in your browser
VIEW IN TELEGRAM
Old but gold: Визуальное руководство по рендерингу React

Хотите понять как работает рендеринг в React и своими глазами увидеть процесс? Что ж, эта статья для вас.

Здесь вы узнаете, как работает повторный рендеринг и как его избежать: https://alexsidorenko.com/blog/react-render-always-rerenders/

#react
👍6
Разрабатываем PWA. Полная инструкция по работе с Web App Manifest и Service Worker

Пошаговое руководство о том, как превратить обычное веб-приложение в прогрессивное (PWA) с помощью настройки Web App Manifest и Service Worker​.

#pwa
👍51