> For the complete documentation index, see [llms.txt](https://vladimirzubavlenko.gitbook.io/mephi-kaf42-web-dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vladimirzubavlenko.gitbook.io/mephi-kaf42-web-dev/express-nodejs/laboratornaya-rabota-1.md).

# Лабораторная работа №1

### Задачи перед л/р

1. Напишите функцию, чтобы найти первый не повторяющийся символ в строке.
2. Напишите функцию, которая объединяет числа заданного массива в массив, содержащий все комбинации.
3. Напишите функцию для генерации случайного шестнадцатеричного цветового кода.
4. Напишите функцию,для декапитализации первой буквы строки.
5. Напишите функцию, которая принимает строку в качестве параметра и находит самое длинное слово в строке.
6. Напишите функцию для передачи «функции JavaScript» в качестве параметра.
7. Напишите функцию для объединения двух массивов и удаления всех повторяющихся элементов.
8. Напишите функцию, чтобы проверить, является ли дата выходным. Примечание: Суббота и воскресенье - выходные, а не как в МИФИ :)
9. Напишите функцию JavaScript, чтобы получить разницу во времени в месяцах между двумя датами.
10. Напишите функцию, которая делает первую букву в каждом слове заглавной.
11. Напишите функцию для преобразования строки в верблюжий регистр.
12. Напишите функцию, чтобы получить часть строки после указанного символа.
13. Напишите функцию для форматирования числа до указанных десятичных знаков.
14. Напишите функцию JavaScript, чтобы проверить, является ли значение целым числом или нет.
15. Напишите шаблон (с помощью регулярного выражения), соответствующий адресам электронной почты.
16. Напишите функцию, чтобы проверить, представляет ли данное значение домен или нет.
17. Напишите функцию JavaScript, чтобы проверить, является ли данное значение объектом или нет.
18. Встроенная функция setTimeout использует колбэки. Создайте альтернативу, основанную на промисах. Функция delay (ms) должна возвращать промис. Этот промис должен разрешиться через миллисекунды ms, чтобы мы могли добавить к нему .then, например:

    ```
    function delay(ms) {
     	// your code
    }
    delay(3000).then(() => alert('runs after 3 seconds'));
    ```
19. Напишите программу на JavaScript для последовательного выполнения заданного массива промисов.
20. Напишите программу на JavaScript для связывания асинхронных функций. Примечание. Выполните цикл по массиву функций, содержащих асинхронные события, вызывая следующий после завершения каждого асинхронного события.
21. Напишите программу для сортировки символов строки по алфавиту.
22. Напишите программу, чтобы переместить указанное количество элементов в конец массива.

#### Ваши задачи:

i(mod23), i+10(mod23), i+20(mod23)

#### Лабораторная работа:

1\)Инициализировать express-приложение

2\)Создать 3 обработчика маршрута. Формат маршрута: '/api/FamiliyaImya/lab1/...

3\)Каждый обработчик маршрутка должен принимать query-параметр и возвращать результат выполнения каждой из задачек.

Примечание: для задач, где нечего возвращать, верните ваш код:)

{% hint style="info" %}
[**https://www.youtube.com/watch?v=Bluxbh9CaQ0**](https://www.youtube.com/watch?v=Bluxbh9CaQ0) **-> Основы JS**
{% endhint %}

{% hint style="info" %}
[**https://youtu.be/3aGSqasVPsI**](https://youtu.be/3aGSqasVPsI) **-> Введение в nodeJS**
{% endhint %}
