Почитал комментарии - тут нет скрытых неявных действий, как раз-таки JS последователен -> императивен.
function checkAge(age) - function declaration, то есть объявление функции с таким-то телом, где просто описание, что это функция делает. Например, в твоем примере она проверяет соответствует ли значение переменной age логическому сравнению `> 18`. То есть если age будет 20, то вернется true, иначе откроется нативное модальное окно с подтверждением Да / Нет, которое в свою очередь тоже вернет либо true, либо false.
Далее в переменную age сохраняется результат функции prompt(), которая спрашивает возраст у пользователя и потом это введенное число сохраняет в переменную. Если ничего не ввести, то будет 18 по дефолту.
Условие if в конце кода проверят булево значение результата исполнения функции checkAge(age). То есть его можно переписать в виде `if (checkAge(age) === true) {}`
Если checkAge вернул true, то тогда откроется модальное окно alert("Досуп получен'), иначе второй.
Возможный вариант действий:
- открылся prompt
- юзер ввел 16
- открылся confirm
- юзер ответил Да
- доступ получен