JavaScript заметки
8.55K subscribers
2.76K photos
4 videos
1.27K links
Регулярные заметки по практическому JavaScript. Обучащию посты позволят прокачать навыки во Frontend-разработке.

Можно почитать пока компилируется проект :)

Сотрудничество: @noname_media

Канал на бирже: telega.in/channels/notesjs/card?r=Wj7h1mbl
Download Telegram
Быстрая сортировка

QuickSort — это алгоритм «разделяй и властвуй». Он выбирает элемент в качестве опорного элемента и разбивает заданный массив вокруг выбранного опорного элемента. Существует много разных версий quickSort, которые по-разному выбирают точку опоры. Данная статья поможет разобраться с алгоритмом.

#статья

❤️ Прожимай реакции, если нравится такой формат

👉 Читать статью
Callback-функции

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

#статья

❤️ Прожимай реакции, если нравится такой формат

👉 Читать статью
👍5
Свойства объекта

Вы можете получить доступ к свойствам объекта с помощью [] вместо '.'. Это позволяет найти свойство, которое соответствует переменной.

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

Некоторые люди не знают этого и заканчивают это использованием eval(),что по-настоящему плохая идея. Так код сложнее читать, сложнее находить ошибки(невозможно использование jslint), он медленнее выполняется и может привести к XSS.

#объекты
👍1
Шпаргалка по RegEx

Регулярное выражение — это последовательность символов, формирующая шаблон поиска. Шаблон поиска можно использовать для текстового поиска и операций замены текста. Делимся шпаргалкой для работы с RegEx.

#статья

❤️ Прожимай реакции, если нравится такой формат

👉 Читать статью
👍6
Private методы

Объекты могут иметь private методы

#методы
👍4
Синхронизация между Notion и календарем

Делимся статьей, где автор демонстрирует интеграцию календаря из Notion в Google Calendar через ics. Таким способом события из календаря Notion можно добавить в любой календарь, поддерживающий ics формат.

#статья

❤️ Прожимай реакции, если нравится такой формат

👉 Читать статью
isInteger

Это
аккуратный способ узнать, является ли значение целым числом. Встроенный в JavaScript API Number предоставляет для этого метод isInteger(). Очень полезная штука, о которой следует знать.

#методы
Лайфхаки для улучшения кода

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

#статья

❤️ Прожимай реакции, если нравится такой формат

👉 Читать статью
Сокращение с помощью AND

Давайте рассмотрим ситуацию, в которой у нас есть логическое значение и функция.

let isPrime = true;
const startWatching = () => {
console.log('Started Watching!');
}

Немало кода получается ради проверки логического условия и вызова функции.

if (isPrime) {
startWatching();
}

А как насчёт использования сокращённой записи вместе с оператором AND (&&)? Да, условный оператор "if" нам больше не нужен. Круто, правда?

isPrime && startWatching();

#методы #and
🔥7👍2
Map против Set

Set — это множество данных коллекции, которое должно состоять из уникальных значений. Map — это коллекция ключ/значение. Map и Set имеют схожие методы; к ним относятся .has(), .get(), .delete() и .size(). Данная статья рассказывает, когда нужно использовать Map и Set.

#статья

❤️ Прожимай реакции, если нравится такой формат

👉 Читать статью
👍2
Значение по умолчанию с помощью OR

Если для переменной необходимо предусмотреть запасное значение по умолчанию, это достаточно просто реализуется с помощью оператора OR.

let person = {name: 'Jack'};

// если свойство "age" равно "undefined", устанавливает значение 35
let age = person.age || 35;

console.log(Age of ${person.name} is ${age});

#операторы
1
Chrono

Chrono — это парсер даты на естественном языке в Javascript. Он предназначен для обработки большинства форматов даты/времени и извлечения информации из любого заданного текста. В данной статье автор демонстрирует внедрение русского языка в Chrono.

#статья

❤️ Прожимай реакции, если нравится такой формат

👉 Читать статью
Произвольные значения

Генерирование произвольных значений или получение произвольного элемента массива – очень полезные методы, которые стоит держать под рукой.

Пара применений:

• Получить произвольный элемент из массива
• Генерирование произвольного числа из диапазона с указанием минимального и максимального значений

#полезно
👍3🔥3
Редактор SVG диаграмм

DgrmJS — это библиотека JavaScript для создания блок-схем SVG. Основная цель библиотеки — настроить рабочие процессы в системах BPM (Business Process Management). Подробней об этой библиотеке узнаешь из статьи.

#статья

❤️ Прожимай реакции, если нравится такой формат

👉 Читать статью
Значения параметров функции по умолчанию

В JavaScript параметры функции подобны локальным переменным. При вызове этой самой функции вы можете и не передавать значения для её параметров. В этом случае они принимают значение "undefined", что может привести к нежелательным последствиям.

Существует простой способ передачи значения по умолчанию для параметров функции при их определении. В примере ниже для параметра "message" функции "greetings" передаётся значение по умолчанию "Hello".

#функции
2
Core Web Vitals

Core Web Vitals — это три показателя, которые оценивают опыт пользователя при загрузке веб-страницы. Эти метрики оценивают, насколько быстро загружается содержимое страницы, как быстро браузер, загружающий веб-страницу, может реагировать на ввод пользователя и насколько нестабильно содержимое загружается в браузере. Данная статья поможет разобраться с Core Web. Vitals.

#статья

❤️ Прожимай реакции, если нравится такой формат

👉 Читать статью
Оператор "Запятая"

В JavaScript оператор запятой используется для оценки каждого из операндов слева направо и возврата значения последнего операнда.

let count = 1;
let ret = (count++, count);
console.log(ret);

В примере выше значением переменной "ret" будет число 2. По тому же принципу, результатом следующего кода будет вывод в консоль числа 32.

let val = (12, 32);
console.log(val);

Где мы его используем? Есть идеи? Чаще всего оператор запятой используется параметров в цикле "for". В примере ниже оператор запятой задаёт значение переменной "j" после объявления счётчика "i".

for (var i = 0, j = 50; i <= 50; i++, j--)

#оператор
👍51
super

В дочернем классе super() используется для вызова конструктора его родителя и super.<methodName> для доступа к методам его родителя. Данная статья поможет разобраться с super().

#статья

❤️ Прожимай реакции, если нравится такой формат

👉 Читать статью
👍21
Объединение нескольких объектов

У вас может возникнуть потребность объединить вместе два объекта, чтобы создать третий, более полный. В этом случае можно использовать оператор "..." (да, три точки).

let emp = {
'id': 'E_01',
'name': 'Jack',
'age': 32,
'addr': 'India'
};

let job = {
'title': 'Software Dev',
'location': 'Paris'
};

Их можно объединить с помощью spread-оператора (оператора расширения):

// spread-оператор
let merged = {...emp, ...job};
console.log('Spread merged', merged);

Существует и другой путь такого объединения. С помощью "Object.assign()"

console.log('Object assign', Object.assign({}, emp, job));

Обратите внимание, что и spread-оператор и "Object.assign" выполняют поверхностное (shallow) объединение. При поверхностном объединении, если свойства повторяются, то происходит перезапись первого объекта данными из таких же свойств второго.

Для глубокого объединения объектов, следует использовать, например, библиотеку lodash

#объект
5👍2
WeakSet

Подобно сетам, WeakSet представляет собой набор объектов, которые уникальны друг от друга. WeakSet может хранить только объекты и не может содержать произвольные значения любого типа, такие как строки или числа. Они используют слабые ссылки. Данная статья поможет разобраться с WeakSet.

#статья

❤️ Прожимай реакции, если нравится такой формат

👉 Читать статью