Если кто не знает, Git — это система контроля версий, которая помогает отслеживать историю изменений в файлах.
Например с помощью команды
git pull, можно загружать удаленные репозитории к себе на ПК, чтобы вести разработку локально, не затрагивая продуктовую или dev ветку. Сохрани в избранное, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🤝8🔥7❤3
❤10👍9🔥6🤝3
Например,
Function Declaration поддерживает hoisting и доступна до места объявления, а Arrow Function предоставляет более компактный синтаксис и иной механизм работы с контекстом this.На картинке — 4 основных способа объявления функций в JavaScript, которые необходимо уверенно понимать и применять в повседневной разработке.
Сохрани, чтобы не забыть!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15🤝12👍10
Когда зависимости создаются внутри функций и классов, код становится сложно тестировать, расширять и переиспользовать.
В этом посте:
• Разберём, в чём проблема жёстких зависимостей;
• Покажем базовый DI без классов и контейнеров;
• Научимся подменять реализации без переписывания кода;
• Построим простую, но гибкую схему внедрения зависимостей.
Dependency Injection переносит точку изменения из тела функции в место её создания, позволяя управлять поведением системы без переписывания логики.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍9❤8🤝5
Проверяем наличие свойства!
Очень часто нужно проверить, есть ли поле именно в объекте, а не где-то в прототипе. Многие пишут так:
Но
Другой классический вариант -
Особенно если объект создан через
Правильный и нативный способ
Он работает корректно независимо от прототипа.
Очень хорошо ложится на проверки данных, API-ответы и конфиги:
🔥
📣 JS Ready | #совет
Очень часто нужно проверить, есть ли поле именно в объекте, а не где-то в прототипе. Многие пишут так:
'id' in data;
Но
in возвращает true, даже если свойство прилетело из прототипа.Другой классический вариант -
obj.hasOwnProperty, но он небезопасен:data.hasOwnProperty('id'); // может не существоватьОсобенно если объект создан через
Object.create(null) или поле переопределено.Правильный и нативный способ
Object.hasOwn:Object.hasOwn(data, 'id');
Он работает корректно независимо от прототипа.
Очень хорошо ложится на проверки данных, API-ответы и конфиги:
if (Object.hasOwn(config, 'timeout')) {
applyTimeout(config.timeout);
}Object.hasOwn — отличный способ проверить наличие свойства в объекте, не задевая прототип.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍12🤝9❤2
Сегодня реализуем интерактивную консольную игру, в которой игрок управляет ресурсом и принимает решения в условиях неизвестной ценности.
В этой задаче:
• Управляем состоянием игры и балансом игрока;
• Реализуем аукционную механику с риском;
• Строим полноценный игровой цикл;
• Анализируем результат каждого решения.
Задача показывает, как моделируются системы с неопределённостью, ограниченными ресурсами и пошаговой логикой.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22❤14👍9🤝2
В этой статье:
• Автор пошагово показывает, как с нуля создать игровой движок без Unity и Unreal;
• Узнаете, как на уровне кода будут двигаться объекты, реализовываться физика и логика игры;
• Приводится реальный пример, как из простого браузерного кода вырастает полноценный игровой цикл.🔊 Продолжайте читать на Habr!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18❤10👍8🤝2
В шпаргалке собраны основные методы Web Storage API (localStorage и sessionStorage) для работы с простым key–value хранилищем на стороне клиента. Показано, как сохранять, читать и удалять данные, сериализовывать объекты, очищать хранилище и реагировать на изменения состояния между вкладками с помощью события storage.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤19🔥10🤝9👍2