Функции используются при написании программ для выполнения объемного кода повторно в нескольких местах. // Общий вид невозвращающей функции function имя_функции(аргументы) { // Тут выполняем действия ... } // Общий вид возвращающей функции function имя_функции(аргументы) { // Тут тоже выполняем действия ... return переменная_или_значение } Представим, что есть действие, которое имеет большое количество кода и нужно его иногда повторять. Мы можем его можно перенести в функцию и вызывать эту функцию в нужный момент (сократить код). Как пример, запрос пароля пользователя: let passwdsList = ["12345", "67890", "24680", "13579"]; function promptPassword() { let passwd = prompt("Ваш пароль"); // Проверяем, есть ли в списке пароль for (let i=0; i Можно вызывать функцию внутри себя, что называется //рекурсией//. Рекурсия ограничена по количеству вызовов (количество этих вызовов - **глубина рекурсии**). [[https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Errors/Too_much_recursion|Подробнее про рекурсию]] Простой пример рекурсии: /* * Да, признаю, код не имеет смысловой нагрузки, он просто показывает * возможность рекурчивного выполнения кода */ function getPassword() { let passwd = prompt("Ваш пароль"); if (passwd == "abcdef") { alert("Доступ разрешен!"); } else { getPassword(); // Повторяем запрос пароля, возможно пользователь ошибся } }