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
Сокращение с помощью 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.

#статья

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

👉 Читать статью
Обмен значений переменных

С помощью техники деструктуризации, это сделать очень просто.

#полезно
👍4
Proxy

Прокси — это объект, который обертывает другой объект (цель) и перехватывает основные операции целевого объекта. Основными операциями могут быть поиск свойств, присвоение, перечисление, вызовы функций и т. д. Данная статья поможет разобраться с прокси.

#статья

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

👉 Читать статью
👍5
isArray

Ещё один полезный метод, на этот раз позволяющий определить, являются ли входящие данные массивом

#массивы
🔥2
Внедрение зависимостей

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

#статья

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

👉 Читать статью
👍1
"undefined" против "null"

"undefined" – присутствует у переменной, которая была объявлена, но значение для неё задано не было
"null" – обозначает пустое или несуществующее значение, которое явно присваивается переменной

"undefined" и "null" не равны при строгом сравнивании:

Дополнительно почитать на тему разницы между этими двумя значениями можно здесь

#массив
👍4
Подделка API

Тесты и программные компоненты, которые ты хочешь протестировать, в большинстве случаев имеют зависимости. Типичной зависимостью может быть, например, внешний источник данных. Было бы непрактично вызывать настоящий API в тестовой среде или в процессе разработки. В данной статье автор демонстрирует 4 способа подделки API.

#статья

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

👉 Читать статью
1👍1
Получение фрагментов url-адреса

Объект "window.location" имеет набор полезных методов и свойств. С помощью них мы можем получить данные про протокол, хост, порт, домен и тому подобное из url-адреса браузера.

Одно из свойств, которое мне кажется очень полезным

window.location.search

Свойство "search" возвращает фрагмент строки url-адреса, находящийся после вопросительного знака: "?project=js".

Для получения параметров запроса, помимо "location.search" можно использовать ещё один полезный API, называемый "URLSearchParams".

let project = new URLSearchParams(location.search).get('project');

В результате получаем "js"

#url
🔥6
Подсчет длины текста

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

#статья

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

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