Js

A collection of 17 posts

JavaScript

JS и точки с запятой

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

JavaScript

JS/ES2020: Optional Chaining and Nullish Coalescing

На дворе 2020 год, а в ES2020 уже есть 2 долгожданные фичи, которые облегчат работу. Но самое интересное, что эти фичи уже точно можно использовать в продакшене. Давайте рассмотрим их с примерами и поймем профит. Во первых - эти фичи уже доступны в браузерах:

JavaScript

String.prototype.replace

Регулярки, колбэки и… Шаблоны! Сегодня короткий пост про простую функцию replace в мире JS. Чтобы понять нужно ли вами читать этот пост пройдите микро тест: 'abc'.replace('a', '$$$') // = ??? Смогли ответить и понимаете почему так? Значит вам не стоит читать текст далее. Для

Js

Array.prototype.flat polyfill

Полифилим правильно Давеча накидал вариант полифила для [].flat . Показал быстрое решение, но если вникать в детали, оно не очень верное. Если заглянуть в спецификацию, то увидим что у данного метода есть аргумент — depth. Собственно на этот косяк мне указал Roman Dvornov, увидев мой полифил.

Bash

Notes. Зарисовки будней #1001

JS, Node.js, Bash Bash: посчитать количество уникальных расширений из поддиректорий Если вдруг есть такая задачка, то она так же как и в JS решается 100500 способами, но я для себя выбрал один, который использую: $> ls -1 storage/**/*.* | cut -d"." -f2- | sort | uniq

JavaScript

FunES#10: Странный массив

Точнее все ок, магии нет Буквально недавно на Reddit был показан интересный пример “нетипичного” поведения JS. Через некоторое время этот “мем” ушел в твиттер и его даже запостил Axel Rauschmayer‏, что придало этому примеру большой резонанс. У меня была очень загруженная неделя, полностью отключилось

Cloudflare

Cookie авторизация

Закрываем dev версию сайта от посторонних глаз В прошлой статье я рассказывал как сделать простую авторизацию по кукисам для того, чтобы закрыть хост от посторонних глаз. UPD #1 Я исправил уже, но сначала я указывал код редиректа 301. Нужно отдавать 302. Если ваш клиент/

ES6

JS Зарисокви на тему URL

А вы знали что… Не зная таких вещей, можно наломать дров Наверняка вы знаете что, чтобы получить имя домена нужно обратиться к window.location: window.location.href При этом не раз слышал на собеседовании что чтобы получить имя домена, надо парсить это свойство. Я

JavaScript

FunES#9: загадка

Фокусы с JavaScript Ответ будет объяснятся сразу после вопроса, так что если хотите сами подумать, не листайте. Мой ответ базируется на моем опыте и моем понимании как работает JS. Если я ошибся — поправьте, пожалуйста. Недавно меня попросили помочь объяснить как отработает такой код. Будет

Browsers

Добавляем кнопку DarkTheme в браузер за 2 минуты

CSS инверсия по мотивам вебстандартов В последнее время из за jetlag’a много провожу времени за компьютером в номере в кромешной тьме. На дворе 5 утра, мне уже не спится, свет в номере включить не могу, так как я не один. Читать черное по

Algorithms

Сделать reshape массива

Превращаем вектор в матрицу Допустим есть одномерный массив. Для примера сгенерим его и заполним числами от 0 до 9 const arr1 = Array.apply(null,{length:9}).map(Number.call, Number) Теперь нам надо превратить его в матрицу 3×3, к примеру. Что делаем?

Algorithms

GCD / НОД

Пример с деструктуризацией Задачка для собеседования — написать функцию вычисления наибольшего общего делителя — НОД (GCD). Наибольший общий делитель целых чисел — это наибольшее из натуральных чисел, которое делит каждое из данных чисел. Например gcd(30,15) = 15. Пример решений на ES6+ с деструктуризацией Цикл function gcd(

Algorithms

Склоняем числительные

1 дня, 2 лет, 5 день Склонять числительные нужно периодически в работе. Цены, возраст, количество товара и так далее… Предлагаю простую функциональную реализацию в 1 строчку: const numfix = (n, t) => t[ (n %= 100, 20 > n && n > 4) ? 2 :[2,

JavaScript

setTimeout и бесконечность

Как отработает? Если в setTimeout передать большое значение, например Number.MAX_VALUE, то через какое время сработает таймер, как вы думаете? setTimeout(f => console.log('done'), Number.MAX_VALUE) Значение выведется точно так же, как если бы вы передали 0 (ноль). А что

Ecmascript

Типизация в языках

Давайте наведем порядок в голове Языки программирования по типизации делятся на два больших лагеря — типизированные и не типизированные. Типизированные языки К типизированным языкам относятся C/C++ Python, PHP, Ruby Lua, JavaScript, Action Script Не типизированные языки Ассемблер Forth Brainfuck … Да-да, именно так. JavaScript, как

👍 ?
👓 ?