Обновить
297.89

JavaScript *

Прототипно-ориентированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Пишем 2D игру на JavaScript и Canvas. Часть 2. Графика

Уровень сложностиПростой
Время на прочтение18 мин
Охват и читатели12K

Привет!

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

Читать далее

Вопросы и ответы для собеседования на позицию frontend-разработчик. Часть 2

Уровень сложностиПростой
Время на прочтение20 мин
Охват и читатели53K

Всем привет! В этой статье (части) рассмотрим вопросы, связанные с великим и могучим TypeScript'ом, которые задают на собеседованиях. Если вы не читали прошлую статью, где описаны вопросы по JS, вот ссылочка. Пожалуйста, не заучивайте вопросы, это вредно для вашего здоровья!)

Читать далее

As const в Typescript

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели32K

Привет, Хабр!

В разработке часто возникают ситуации, когда точность типов и нежелание допускать неясности в коде становятся первостепенными задачами. В таких случаях, разработчикам приходится искать инструменты, предоставляющие максимальную ясность и строгость в определении данных. Один из таких инструментов — ключевое слово as const. В данной статье мы рассмотрим, как as const может повысить уровень строгости и предсказуемости, а также рассмотрим практические примеры его использования для создания неизменяемых и точных типов.

Читать далее

Решаем задачу: как сохранить нервные клетки пользователей с помощью валидации поля ввода

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели10K

Всем привет! Меня зовут Алексей Гмитрон, я фулстек-разработчик и наставник на курсе «Фронтенд-разработчик» в Практикуме. Довольно долгое время я разрабатываю интерфейсы, а ещё дольше — пользуюсь ими. 

В этом году я много путешествовал, поэтому нередко заполнял формы с анкетами на разные визы — в них бывало по 30—40 полей. Когда что-то шло не так, часто сайты не давали никакой обратной связи. Иногда они сбрасывали всё, что я заполнял в течение часа, если одно из полей невалидно. 

Решить проблему могла бы валидация. Это критически важная часть разработки веб-приложений, которая соотносит данные с необходимым форматом и указывает на ошибки. Также она гарантирует безопасность дальнейшей обработки этих данных. 

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

Читать далее

Лучшие поисковые пакеты для JavaScript

Время на прочтение8 мин
Охват и читатели14K

Спрос на функции поиска растет, и многие разработчики пытаются внедрить их в свои приложения. Однако создание таких приложений с нуля - сложная и трудоемкая задача. К счастью, существует множество библиотек с открытым исходным кодом, позволяющих освободить разработчиков от этого бремени.

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

Читать далее

Почему typeof null === «object» в современном прочтении

Время на прочтение6 мин
Охват и читатели9.8K

Задача унарного оператор typeof возвращать строковое представление типа операнда. Другими словами, typeof 1 вернет строку "number", а typeof "" вернет "string". Все возможные значения типов, возвращаемых оператором typeof изложены в спецификации ECMA-262 - 13.5.1. По задумке, возвращаемое, оператором, значение должно соответствовать принятым в той же спецификации типам данных. Однако, при детальном рассмотрении, можно заметить, что typeof null должен возвращать "object", не смотря на то, что Null - это вполне себе самостоятельный тип, он описан в разделе 6.1.2. Причина тому - обычный человеческий фактор, или, попросту, невинная ошибка в коде. Как эта ошибка могла случиться, попробуем разобраться в этой статьей.

Читать далее

Вопросы и ответы для собеседования на позицию frontend-разработчик. Часть 1

Уровень сложностиПростой
Время на прочтение20 мин
Охват и читатели160K

Всем привет! В этой статье хотел бы поделиться вопросами и ответами, которые я задаю на собеседованиях фронтенд-разработчикам и которые попадались мне, когда я сам искал работу. Здесь собраны вопросы именно по JavaScript. В дальнейшем планирую рассмотреть TypeScript отдельно, а также React и связанные с ним технологии.

Читать далее

Строим свой SSO. Часть 4: Vue.js, Регистрация, Сброс пароля

Уровень сложностиСредний
Время на прочтение44 мин
Охват и читатели17K

Всем привет!
Мы продолжаем строить собственный SSO Server. Сегодня мы детально разберем Vue.js приложение, а также спроектируем и реализуем долгожданные механизмы регистрации и сброса пароля. Как всегда, дополнительно мы разберём ряд интересных общесистемных решений, которые наверняка Вам пригодятся в дальнейшем.

Читать далее

Может ли нейро-сотрудник на базе ChatGPT звонить по обычной телефонной линии?

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели12K

Продолжаем создавать нейро-сотрудников на базе ChatGPT и пробовать их в разных каналах коммуникаций.

В этот раз мы решили дать нейро-сотруднику возможность отвечать по обычной телефонной линии или самому делать исходящие вызовы исходя из свой системной роли. Интересно что получилось?

Читать далее

Сайт с поддержкой markdown на GitHub-Pages платформе

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели6K

Хочу рассказать о своём новом (хотя существует уже почти 3 года) сайте egaxegax.github.io, после закрытия предыдущего сайта egaxegax.appspot.com на хостинге Google App Engine в начале 2021 года. О нём я писал в статье Cайт на Django-nonrel на платформе Google App Engine для Python. Эта статья рассчитана на тех, кто хочет узнать или получить простой сайт с возможностью добавления и правки контента на основе создания markdown-постов.

Читать далее

Что такое react-afc

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели403

react-afc - библиотека для более простого уменьшения количества ненужных ререндеров дочерних компонентов.

Читать далее

JavaScript классы в Es6

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели6.8K

В JavaScript нету привычной системы классов как в Java, или C#. В языке заместо этого есть система объектов, где каждый объект наследуется от другого, сохраняя его цепь прототипов. Однако мы имеем возможность писать более привычный код начиная с версии Es6.

Читать далее

2d движок для игр Javascript Game Engine (JsGE)

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели10K

Привет всем. Меня зовут Артурас, я пишу на Javascript. Полтора года назад я уволился из оффшорной компании и решил написать свой движок для браузерных 2d игр. Сегодня - делюсь результатами.

Читать далее

Ближайшие события

Перевод третьей части учебника Patterns.dev

Время на прочтение1 мин
Охват и читатели185

И снова всем привет! Продолжение к переводу второй части книги Patterns.dev

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

Напомню, что авторы Patterns.dev:
Лидия Холли — штатный консультант и преподаватель по разработке программного обеспечения, которая в основном работает с JavaScript, React, Node, GraphQL. Она также занимается наставничеством и проводит личные тренинги.
Эдди Османи — технический менеджер, работающий над Google Chrome. Его команды работают над такими проектами, как Lighthouse, PageSpeed ​​Insights, Chrome User Experience Report и другими.

Материал книги будет полезен не только React‑разработчикам, но и всем, кто так или иначе интересуется или сталкивается с frontend‑разработкой. Это ознакомительная часть перевода учебника https://www.patterns.dev/. Перевод всей третьей части учебника можно найти здесь.

P. P. S.: Третья часть взята из книги: https://www.patterns.dev/, переведена на русский язык. Книга находится под лицензией CC BY-NC 4.0

Данный адаптированный материал распространяется на условиях лицензии Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)

Читать далее

Типы событий в React и TypeScript

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели27K

При работе с React и TypeScript вы часто сталкиваетесь с подобными ошибками:

const onChange = (e) => {}; // Parameter 'e' implicitly has an 'any' type.

<input onChange={onChange} />;

Не всегда понятно, какой тип следует присвоить пременнойe внутри функции onChange.

Это может произойти с onClick, onSubmit или любым другим обработчиком событий, которые получают элементы DOM.

К счастью, есть несколько решений:

Читать далее

Бинарный поиск

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели59K

В этой статье мы познакомимся с бинарным поиском с примером на JavaScript, а так же сравним бинарный поиск и линейным.

Читать далее

Увлекательный мир фронтенда

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели22K

Фронтенд-разработка — это как собирать лего без инструкции: иногда весело и творчески, но порой ты забираешься на кровать и кричишь: «*@#%*, да где же этот пропавший блок?!»

Каждый новый проект во фронтенде — это как уникальный набор лего, и ты никогда не знаешь, какие интересные вызовы подкинет он на этот раз. 

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

Читать далее

Css «карточки» в динамически генерируемом web документе — моя реализация

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели5.1K

Карточный вид содержимого вэб страниц - один из довольно популярных уже долгое время.

В данном случае - страница настранивается с бэк-енд админки (Processwire CMS) и потенциально может иметь боковую панель (произвольной ширины), может и не иметь. А возможно в дальнейшем и вторую панель кому захочется прикрутить (old school) на широких экранах.

Главная секция (main content) состоит из наших конструкторских чудо-карточек, о ней то речь и пойдёт.

Читать далее

DagazBot — Хранитель ключей и мётел

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели1.5K
История проекта Dagaz прошла у вас перед глазами. Когда я только начинал писать про Zillions, главным возражением было то, что платформа эта платная и запускается только под Windows. Появился Dagaz — полностью бесплатный проект с открытой лицензией и общедоступным исходным кодом, игры которого можно запускать из браузера, даже на мобилках. Блокирующим фактором стало отсутствие адекватных ботов. Пришлось осваивать GarboChess и разрабатывать DagazServer, на котором игроки могли бы играть по сети друг с другом. Это стало большим шагом вперёд, но на сервере требуется авторизация, а логины и пароли — это как раз то, что забывается легче всего. Счастлив сообщить, что теперь их запоминать не надо.
Читать дальше →

Python без типов: таким он когда-то был

Время на прочтение5 мин
Охват и читатели10K
О типизации в Python сказано уже очень много. Если вам выпало сомнительное удовольствие поработать со мной, то вы, вероятно, в курсе, насколько скептически я отношусь к типизации в Python. Причины тому – сложность синтаксиса, mypy еле ползает, реализация языка в принципе переусложнена, а взаимодействовать с ним зачастую неудобно. Сегодня я не буду упирать на эти детали, а хочу пригласить вас в небольшое путешествие в прошлое и рассказать, каковы были мои первые впечатления от работы с Python. Почему? Потому что я думаю, что существует фундаментальный и глубокий конфликт между формообразующей философией Python и концепцией типизации. Причём, этот конфликт не нов.
Читать дальше →