Руслан Куянец | Reactify – Telegram
Руслан Куянец | Reactify
5.86K subscribers
707 photos
52 videos
39 files
290 links
Я IT-специалист, ментор и основатель проекта YeaHub и сообщества Reactify. Здесь рассказываю про Frontend и IT.

Менторство:
https://reactify.ru

YouTube канал:
https://youtube.com/@reactify-it

YeaHub:
https://yeahub.ru/

Связь:
@ruslan_kuyanets
Download Telegram
Реализация Бинарного дерева (добавление элемента)🌳
👍2🤔1
Обход Бинарного дерева в глубину (preOrder, inOrder, postOrder)
————————————————
preOrder: В этом обходе мы сначала печатаем данные текущего узла, а затем сначала переходим к левому поддереву, а после этого переходим к правому поддереву.
————————————————
inOrder: В этом обходе мы сначала переходим к левому поддереву, а затем распечатываем данные узла. После печати данные узла переместятся в правое поддерево.
————————————————
postOrder: В этом обходе мы сначала переходим к левому поддереву, а затем переходим к правому поддереву. После перемещения распечатайте данные узла.
1
Обход Бинарного дерева в ширину
Module Revealing Pattern (открытый модуль)
В модуле нам приходится создавать публичные функции для того чтобы обращаться к приватным функциям и переменным.
Мы возвращаем объект где ключ - это любое имя, а свойство – приватная функция. Таким образом мы можем не создавать дополнительные функции.
Singleton - порождающий паттерн, шаблон проектирования.
Есть класс и может быть только один instance этого класса.
Stack первый пришел, последний ушел.
Queue первый пришел, первый ушел.
Dequeue (ДЭК) двухсторонняя очередь.
Глубокое копирование
————————————
Поверхностное копирование объекта:
1. В цикле for in
2. Object.assign(dest, [src1, src2, src3...])
3. Spread
const obj = {…obj2}
Каррирование
Это преобразование функции с множеством аргументов в набор вложенных функций с одним аргументом. При вызове каррированной функции с передачей ей одного аргумента, она возвращает новую функцию, которая ожидает поступления следующего аргумента. Новые функции, ожидающие следующего аргумента, возвращаются при каждом вызове каррированной функции — до тех пор, пока функция не получит все необходимые ей аргументы. Ранее полученные аргументы, благодаря механизму замыканий, ждут того момента, когда функция получит всё, что ей нужно для выполнения вычислений. После получения последнего аргумента функция выполняет вычисления и возвращает результат.
Promisify
Берем функцию которая принимает callback и меняем ее чтобы она возвращала promise
WeakMap
Ключами могут быть только объекты. Не доступны некоторые методы в отличии от Мар (size). При удалении объекта – удалит его из памяти и такого ключа не будет. При удалении ключа – удаляется ссылка. Если использовали бы массив то при удалении, ссылка на него для других переменных после присваивания осталась бы.
Не поддерживает перебор
Генераторы
Генераторы – новый вид функций в современном JavaScript. Они отличаются от обычных тем, что могут приостанавливать своё выполнение, возвращать промежуточный результат и далее возобновлять его позже, в произвольный момент времени.
Для объявления генератора используется новая синтаксическая конструкция: function* (функция со звёздочкой).
При вызове не выполняет код, а создает объект.
Область видимости
IIFE immediately-invoked function expressions
Создаётся и немедленно вызывается Function Expression. Так, что код выполняется сразу же и у него есть свои локальные переменные. Без скобок или ! не работает т.к нет имени.
Mixins
Нельзя наследовать больше одного класса. При помощи этой функции мы можем перенять свойства и методы от нескольких классов.