Функция, где её вызов?
function checkAge(age) {
if (age>18) { return true; } else { return confirm (''разрешили родители?''); } } var age = prompt ("сколько лет вам?", 18); if (checkAge(age)) { alert ("доступ получен"); } else { alert ('доступ закрыт'); } Помогите разобраться... читая про функции, понял, что должен быть её вызов. В этом коде, где её вызов? |
if (checkAge(age)) {
|
А вызов функции разве не должен выглядеть без if, например так: checkAge?, или любое упоминание функции с любыми "командами" автоматически делает её вызов и переход в данном случае на верх к function.
|
Если не нравится такой вызов функции, то можно переменную добавить:
let nenedorosl = checkAge(age); if (nenedorosl) { .... |
Мне не не нравится, ... и я не волшебник, а только учусь, поэтому и вопросы у меня такие...
|
Так вопрос в силе... при любом упоминании функции она вызывается?
|
Цитата:
Ваша функция возвращает булево значение true в том случае, если ввели возраст более 18, в противном случае запрос confirm() и если в нем будет выбрано "да", то тоже вернет true. Иначе функция вернет false. Здесь if (checkAge(age)) вызывается эта функция со значением, которое получено от prompt() и анализируется возвращенное ею значение. Можно было бы и так сделать: var age = prompt ("сколько лет вам?", 18); var check = checkAge(age); if (check) { .... Но большого смысла в этом нет. |
Вроде понятно, спасибо. Просто хотел перевести всё на пррстой и понятный мне язык)... и наверное не правильно выразился. И всё таки можно сказать что : if (checkAge (age)) дает толчёк к выполнению функции?
|
Ну если переводить на понятный и принять "толчок", то проще будет так:
if( здесь вызываем функцию после выполнения которой тут будет true или false ), что и нужно, ибо if это анализ булевого значения. Стоит только помнить, что true также вернет, например, значение больше 0, не пустая строка. |
Спасибо, удачи.
|
''разрешили родители?'' - это ошибка, либо одинарные кавычки, либо двойные, а не в двух одинарных должно быть заключено строковое значение.
|
Задача - при вызове prompt выберите Отмена. Где тут ошибка и какая?
|
Выражение checkAge вычисляется как функция, checkAge(age) — как булево значение, которое возвратила функция при при её применении.
Ещё можно так... function checkAge(age) { return age > 18 || confirm('’разрешили родители ?’'); } var age = prompt("сколько лет вам?", "18"); var isAdult = checkAge(age); alert(isAdult ? "доступ получен" : "доступ закрыт"); Или так... var age = prompt("сколько лет вам?", "18"); var isAdult = (function checkAge(age) { return age > 18 || confirm('’разрешили родители ?’'); })(age); alert(isAdult ? "доступ получен" : "доступ закрыт"); Функция может быть применена в любом виде, важно только, чтобы выражение вычислялось как функция. |
Часовой пояс GMT +3, время: 03:38. |