О производительности JavaScript
Бенчмарки — это что-то вроде минного поля. Каждый бенчмарк имеет свои недостатки и погрешности, и помимо пиковой производительности существует целый ряд других факторов, которые необходимо оценивать при выборе платформы или фреймворка для создания веб-сервисов. В данной статье автор демонстрирует производительность фреймворка just-js.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Бенчмарки — это что-то вроде минного поля. Каждый бенчмарк имеет свои недостатки и погрешности, и помимо пиковой производительности существует целый ряд других факторов, которые необходимо оценивать при выборе платформы или фреймворка для создания веб-сервисов. В данной статье автор демонстрирует производительность фреймворка just-js.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
❤5
Преобразовать любое значение в Boolean
Это будет особенно полезно, если вы не хотите послать в бэкенд значение null или undefined.
Это будет особенно полезно, если вы не хотите послать в бэкенд значение null или undefined.
let number1;
console.log(!!number1); // false
const number2 = 10;
console.log(!!number2); // true
const name1 = 'Tim';
console.log(!!name1); // true
const name2 = '';
console.log(!!name2); // false
const nullValue = null;
console.log(!!nullValue); // false
#полезно👍7
Шифр Вернама
Шифр Вернама — это метод шифрования буквенного текста. Это один из методов замены для преобразования обычного текста в зашифрованный текст. В этом механизме мы присваиваем номер каждому символу обычного текста. Делимся статьей, где автор демонстрирует реализацию шифра Вернама.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Шифр Вернама — это метод шифрования буквенного текста. Это один из методов замены для преобразования обычного текста в зашифрованный текст. В этом механизме мы присваиваем номер каждому символу обычного текста. Делимся статьей, где автор демонстрирует реализацию шифра Вернама.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
👍2
Быстро преобразовать строку в число
const number = "20";
const converted = +number;
console.log(converted); // 20
#полезно🔥11👍4
Алгоритмы поиска
Делимся статьей, где автор рассказывает про алгоритмы поиска. Ты узнаешь, зачем они нужны веб-разработчикам. Также затронута тема оценки сложности алгоритмов и Big O нотации.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Делимся статьей, где автор рассказывает про алгоритмы поиска. Ты узнаешь, зачем они нужны веб-разработчикам. Также затронута тема оценки сложности алгоритмов и Big O нотации.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
❤1
Способы применения reduce
Метод reduce() выполняет функцию редуктора для каждого элемента массива и возвращает одно выходное значение. Редьюсер проходит по массиву поэлементно. На каждом шаге добавляет текущее значение массива к результату предыдущего шага. Этот результат является текущей суммой всех предыдущих шагов. Делается это до тех пор, пока не останется элементов для добавления. Делимся статьей, где автор демонстрирует различные применения reduce.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Метод reduce() выполняет функцию редуктора для каждого элемента массива и возвращает одно выходное значение. Редьюсер проходит по массиву поэлементно. На каждом шаге добавляет текущее значение массива к результату предыдущего шага. Этот результат является текущей суммой всех предыдущих шагов. Делается это до тех пор, пока не останется элементов для добавления. Делимся статьей, где автор демонстрирует различные применения reduce.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
👍5
Отобразить число с точностью до двух знаков после запятой
const number = 100.32222;
console.log(number.toFixed(2)); // 100.32
#полезно👍9
Основные приемы работы с Canvas
Делимся статьей, где автор демонстрирует основные приемы работы с Canvas. Ты узнаешь, как рисовать различные фигуры. Также сможешь реализовать алгоритм fibonacci flower, также известный как golden ratio или phyllotaxis.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Делимся статьей, где автор демонстрирует основные приемы работы с Canvas. Ты узнаешь, как рисовать различные фигуры. Также сможешь реализовать алгоритм fibonacci flower, также известный как golden ratio или phyllotaxis.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
👍1
Проверить вхождение определённого значения в массив
#методы
const numbers = [1, 2 ,3, 10, 50];Метод includes также полезен, если требуется сравнить несколько значений сразу.
// old way
console.log(numbers.indexOf(3) > -1); // true, т.к. проверяется, есть ли в массиве 3
// new way
console.log(numbers.includes(3)); // true
#методы
👍2
Двоичное дерево
Делимся статьей, где автор рассказывает про двоичное дерево. Ты узнаешь, как удалять элементы и как при этом перестраивается дерево. Также продемонстрирована скорость работы двоичного дерева в лучшем и худшем случае.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Делимся статьей, где автор рассказывает про двоичное дерево. Ты узнаешь, как удалять элементы и как при этом перестраивается дерево. Также продемонстрирована скорость работы двоичного дерева в лучшем и худшем случае.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Использование оператора опциональной последовательности (optional chaining operator)
Раньше, чтобы получить доступ ко вложенному свойству, нужно было проверять, существует ли каждое из свойств. Прямое обращение к
Но теперь, в версии ES11, код после оператора опциональной последовательности выполнится, только если обращение по предыдущей ссылке не привело к undefined или null.
Так что использование этого оператора сократит ваш код и сделает его более понятным.
#операторы
Раньше, чтобы получить доступ ко вложенному свойству, нужно было проверять, существует ли каждое из свойств. Прямое обращение к
user.location.street.name
могло выбросить исключение, что мы пытаемся обратиться к name через несуществующие ссылки к методам location или street.Но теперь, в версии ES11, код после оператора опциональной последовательности выполнится, только если обращение по предыдущей ссылке не привело к undefined или null.
Так что использование этого оператора сократит ваш код и сделает его более понятным.
#операторы
👍4
Забудьте о конкатенации, используйте шаблонные строки (литералы)
Конкатенация строк с помощью оператора "+" – это старая школа. Более того, конкатенация строк с участием большого количества переменных (или выражений) повышает риск возникновения путаницы и ошибок.
Шаблонные строки (или литералы) позволяют встраивать выражения прямо в текст. Они обладают уникальным синтаксисом, при котором строка заключается в обратные кавычки (``). Шаблонная строка может содержать места для подстановки динамических значений. Такие места отмечаются знаком доллара и фигурными скобками. Например, ${выражение}.
#полезно
Конкатенация строк с помощью оператора "+" – это старая школа. Более того, конкатенация строк с участием большого количества переменных (или выражений) повышает риск возникновения путаницы и ошибок.
Шаблонные строки (или литералы) позволяют встраивать выражения прямо в текст. Они обладают уникальным синтаксисом, при котором строка заключается в обратные кавычки (``). Шаблонная строка может содержать места для подстановки динамических значений. Такие места отмечаются знаком доллара и фигурными скобками. Например, ${выражение}.
#полезно
👍5
Как в Google Chrome измерить использование памяти веб-страницей
Благодаря этой статье ты узнаешь, как измерять утечки памяти страницы Google Chrome помощью performance.measureMemory. API performance.measureUserAgentSpecificMemory() позволяет разработчикам измерять использование памяти веб-страницами.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Благодаря этой статье ты узнаешь, как измерять утечки памяти страницы Google Chrome помощью performance.measureMemory. API performance.measureUserAgentSpecificMemory() позволяет разработчикам измерять использование памяти веб-страницами.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
👍3
Значение как число
Вы когда-нибудь обращали внимание, что "event.target.value" всегда возвращает строковое значение, даже если для поля ввода "input" задан тип "number"?
Чтобы сразу получать числовое значение, используйте
#полезно
Вы когда-нибудь обращали внимание, что "event.target.value" всегда возвращает строковое значение, даже если для поля ввода "input" задан тип "number"?
Чтобы сразу получать числовое значение, используйте
"event.target.valueAsNumber"
.#полезно
👍9🔥2
Полезные плагины и библиотеки
Делимся статьей, где автор рассказывает про полезные плагины и библиотеки для JavaScript. Всего их 25. Они помогут тебе при работе с анимацией, видео, диаграммами и прочим.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Делимся статьей, где автор рассказывает про полезные плагины и библиотеки для JavaScript. Всего их 25. Они помогут тебе при работе с анимацией, видео, диаграммами и прочим.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
👍4
flat
Это метод, который создает новый массив со всеми элементами вложенного массива, рекурсивно объединенными с вышестоящим массивом до заданной глубины.
#методы
Это метод, который создает новый массив со всеми элементами вложенного массива, рекурсивно объединенными с вышестоящим массивом до заданной глубины.
const array = [1, 2, [3, 4]];Это очень полезная фича, особенно если вы хотите выровнять вложенный массив с вышестоящим. Но если уровень вложенности вашего массива больше единицы, одноразовый вызов flat не сможет полностью выровнять массивы. Тогда для flat можно задать параметр глубины, который укажет на то, какой уровень вложенности вы хотите охватить, чтобы выровнять массивы.
array.flat(); // [1, 2, 3, 4];
const crazyArray = [1, 2, [3, 4], [[5], [6, [7,8]]]];Чем глубже вы погружаетесь в массив, тем больше вычислительного времени потребуется для его выравнивания. Обратите внимание, что IE и Edge не поддерживают эту функцию.
crazyArray.flat(Infinity); // [1, 2, 3, 4, 5, 6, 7, 8];
#методы
👍5
Рекурсивные функции
Внутри функции можно вызывать её саму — это пример рекурсивной функции.
Если разложить пример, то получится следующая цепочка:
- fac(3) это 3 * fac(2);
- fac(2) это 2 * fac(1);
- fac(1) это 1.
Получается, что
#функции
Внутри функции можно вызывать её саму — это пример рекурсивной функции.
Если разложить пример, то получится следующая цепочка:
- fac(3) это 3 * fac(2);
- fac(2) это 2 * fac(1);
- fac(1) это 1.
Получается, что
fac(3) это
3 * 2 * 1, то есть 6. Такой подход часто применяется в математических операциях, но не ограничивается ими.#функции
👍2
Фейковый API сервер
Делимся статьей, где автор рассказывает про создание гибридного фейкового API сервера с помощью json-server. Ты узнаешь, для чего он нужен и где используется. Также продемонстрированы достоинства и недостатки.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Делимся статьей, где автор рассказывает про создание гибридного фейкового API сервера с помощью json-server. Ты узнаешь, для чего он нужен и где используется. Также продемонстрированы достоинства и недостатки.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
❤4👍2
reduce()
Метод reduce() - это еще один встроенный метод JavaScript, который может быть использован для итерации через массив и выполнения какой-либо операции на каждом элементе. Он позволяет суммировать или сворачивать элементы массива в одно значение, используя функцию обратного вызова.
Например, мы можем использовать reduce() для суммирования всех чисел в массиве:
#методы
Метод reduce() - это еще один встроенный метод JavaScript, который может быть использован для итерации через массив и выполнения какой-либо операции на каждом элементе. Он позволяет суммировать или сворачивать элементы массива в одно значение, используя функцию обратного вызова.
Например, мы можем использовать reduce() для суммирования всех чисел в массиве:
const numbers = [1, 2, 3, 4, 5];Функция обратного вызова выполняется для каждого элемента массива, и результат сохраняется в аккумуляторе. В конце итерации reduce() возвращает окончательное значение аккумулятора
const sum = numbers.reduce((accumulator, currentValue) => {
return accumulator + currentValue;
}, 0);
console.log(sum); // Output: 15
#методы
👍5
Редко используемые API
Делимся статьей, где автор рассказывает про 4 API. Они редко используются, однако очень полезны. К ним относятся Beacon, Clipboard, Notifications и Perfomance. Присутствует ссылка на репозиторий с примерами.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
Делимся статьей, где автор рассказывает про 4 API. Они редко используются, однако очень полезны. К ним относятся Beacon, Clipboard, Notifications и Perfomance. Присутствует ссылка на репозиторий с примерами.
#статья
❤️ Прожимай реакции, если нравится такой формат
👉 Читать статью
🔥1