Как работает эта программа?

function checkAge(age) {
  if (age > 18) {
    return true;
  } else {
    return confirm('А родители разрешили?');
  }
}

let age = prompt('Сколько вам лет?', 18);

if ( checkAge(age) ) {
  alert( 'Доступ получен' );
} else {
  alert( 'Доступ закрыт' );
}


Как работает эта программа? Она взята с лерн джава скрипт.

Они не объясняют, как она работает, а мне нужно понять, чтобы двигаться дальше...

Буду благодарен! Спасибо.
  • Вопрос задан
  • 347 просмотров
Пригласить эксперта
Ответы на вопрос 3
pLavrenov
@pLavrenov
Разработка сайтов
Функцию можно поместить в любое место файла и она выполнится только тогда когда она вызывается.
Получается что этот скрипт выполняется со строки let age = pr........ где присваивается значение переменной age.
Функция prompt() глобальная и возвращает то что пользователь ввел руками. Описание функции по ссылке.

Дальше идет проверка. Если число больше 18 то доступ получен. Если меньше то выполняется функция confirm() которая в отличии от prompt() возвращает не пользовательские данные а true или false. И если пользователь ввел 16 но при этом нажал Да когда его спрашивали то функция checkAge() вернет true и разрешит доступ.

z0RQRjwMRemcW4dzgUbuAQ.png
Ответ написан
@lomeat
абстрактный ленивый прокрастинатор
Почитал комментарии - тут нет скрытых неявных действий, как раз-таки 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
- юзер ответил Да
- доступ получен
Ответ написан
donko1
@donko1
Изучаю python
Не писал на JS , но вижу смысл в коде. В начале вы создаете функцию, это такая мини-программа которую вы можете вызвать в любой момент. Так же есть аргументы, это такие переменные которые видны только в функции. Они нужны если вы будете вызывать(использовать) функцию много раз. Потом просто в скобочках после названия функции пишете переменную, которую сохранить как age в вашем случае. Аргументов бывает много. Я писал функцию с 10+ аргументами. а return - это оператор благодаря которому вы можете сохранить результат в переменную. Погуглите что-то вроде "Функция в JavaScript". Пример функции
function make_password(length_of_password) {
 Some code here
 return password
}

Далее вы сможете сохранить результат этой функции в переменную
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы