Решил попробовать новый формат — пазлы.rangeВ некоторых программах часто возникает необходимость получить интерал чисел. В Python есть встроенная функция range, в Scala — красивая синтаксическая конструкция 5 to 14 by 3.В JavaScript можно сделать нечто подобное. Результат в прикрепленной картинке.Присылайте свои варианты, как это работает, завтра покажу авторское решение.#puzzle
Глубокий JavaScript
@deep_js
Тонкости в лучше языке программирования. Вопросы, пожелания, комментарии — @igorkamyshev
Похожие каналы
Все →Последние посты
Новые браузерные APIJavaScript — это больше чем чем язык. Это еще и очень изменчивая среда выполнения (зоопарк устройств, разные браузеры). Единственное, что хоть чуть-чуть упрощает жизнь — стандартизированные браузерные API.В последние годы появилось много новых API. Тематический доклад — API браузеров, о которых вы могли не слышать#api #link
Приведение типовJS славится своей системой преобразования типов. Александр Майоров в двух статьях рассказывает как она работает и что нужно делать чтобы не допускать ошибок.Приведение типов в JS:+ Магия или простые правила?+ Что еще надо знать в 2019 году#типы
React и связные спискиПродолжаем серию постов про внутреннее устройство React. Внутри фреймворка часто используются довольно необычные для JS структуры данных.Перевод статьи с объяснением, как и почему React использует связные списки в архитектуре FiberПредыдущая часть — React Fiber#framework
Стандартная бибилиотка: состояние регуляркиНа первый взгляд кажется, что регулярные выражения не могут хранить в себе состояние. Это не так.Функции test и exec начинают проверять строку с последнего совпадения, если регулярное выражение имеет флаг global (g).Обойти это можно через свойство lastIndex. Нужно установить его на 0 и поиск начнется снова с начала строки.Если поиск ничего не нашел, это свойство автоматически сбрасывается на 0.#stdlib
Стандартная бибилиотка: юникодные строкиПри обработке пользовательского ввода часто приходится сравнивать его значение с референсом. При наивном сравнении легко допустить ошибку из-за возможности модификации символов в UNICODE.В типографике используются диакритические знаки для модификации символов.Для реализации таких изменений в UNICODE предоставили возможность композиции символов.Сравнение таких символов через === в JavaScript даст false, поэтому для облегчения жизни существует метод String.prototype.normalize(), который возвращает нормализованную строку.Статья на Medium#stdlib
ДеньгиРаботать с денежными значениями сложно в любом языке, но в JS — особенно. Тут и проблемы с разными валютами, и опасность хранения сумм как чисел с плавающей точкой.В JS нет подходящих встроенных типов. Money и Decimal даже не планируются, а BigInt еще на stage3 (не принят в стандарт). Потому приходится использовать сторонние библиотеки или писать свои "велосипеды".Тематическая статья — Как работать с денежными значениями в JavaScriptBigIntВ браузере: поддерживается в новых Chromium, для остальных браузеров — полифил jsbi и клевый сторонний Babel-плагинВ Node.js: в v10.4 добавили поддержку BigInt.Что такое BigInt и почему он важен#link
React FiberReact — самый популярный JS-фреймворк. И в нем есть много сложных и тонких моментов.Перевод статьи с обзором React Fiber и внутренних механизмов работы нового API — хуков#framework
Стандартная бибилиотка: это массивУзнать, является ли нечто массивом не так просто, как кажется. typeof вернет object, а многие свойства массивов присущи и другим объектам.Если код выполняется в среде поддерживающей ES5+ (или транспайлится), то доступна функция Array.isArray которая проверяет, евляется ли аргумент массивом. В таком случае можно выкинуть _.isArray и пользоваться стандартной бибилиотекой.Я страстно люблю lodash, но всему свое место и время.#stdlib
ЧислаВсе знают, что 0.1 + 0.2 = 0.30000000000000004. Но это не вина JavaScript.Статья объяснение от Марата Сайтакова#explain
Стандартная бибилиотка: даты и больВ новом JS появилась функция форматирования даты в локаль-зависимом виде.Это простой способ показать дату в привычном пользователю формате. При вызове без параметров локаль подтянеться из среды выполнения.Использовать в Node.js эту функцию нужно осторожно (например при отправке писем пользователям). Если не указать локаль, то будет использована локаль сервера, она часто не совпадает с локалью пользователей.На MDN есть неплохая статья про эту функцию.#stdlib
Хороший программист должен знать как работает язык, на котором он пишет. Причем, желательно очень хорошо. Не ради собеседований, ради понимания.В этом канале мы будем разбирать странные, неочевидные и местами противоречивые особенности JS (и других около стоящих языков), говорить о возможностях стандартной библиотеки и о более выразительных аналогах, изучать лучшие практики написания JS-кода.
Channel photo updated
Channel name was changed to «Глубокий JavaScript»
Channel created