Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Функция, где её вызов? (https://javascript.ru/forum/misc/80376-funkciya-gde-ejo-vyzov.html)

Zay 28.05.2020 20:31

Функция, где её вызов?
 
function checkAge(age) {
if (age>18) {
return true;
} else {
return confirm (''разрешили родители?'');
}
}
var age = prompt ("сколько лет вам?", 18);

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


Помогите разобраться... читая про функции, понял, что должен быть её вызов. В этом коде, где её вызов?

laimas 28.05.2020 20:32

if (checkAge(age)) {

Zay 28.05.2020 21:03

А вызов функции разве не должен выглядеть без if, например так: checkAge?, или любое упоминание функции с любыми "командами" автоматически делает её вызов и переход в данном случае на верх к function.

MC-XOBAHCK 28.05.2020 21:09

Если не нравится такой вызов функции, то можно переменную добавить:
let nenedorosl = checkAge(age);

if (nenedorosl) { ....

Zay 28.05.2020 21:11

Мне не не нравится, ... и я не волшебник, а только учусь, поэтому и вопросы у меня такие...

Zay 28.05.2020 21:13

Так вопрос в силе... при любом упоминании функции она вызывается?

laimas 28.05.2020 21:16

Цитата:

Сообщение от Zay
А вызов функции разве не должен выглядеть без if

Образно говоря нет, функция вызывается там где ее выполнение необходимо, а в условии ли это или нет, не суть.

Ваша функция возвращает булево значение true в том случае, если ввели возраст более 18, в противном случае запрос confirm() и если в нем будет выбрано "да", то тоже вернет true. Иначе функция вернет false.

Здесь if (checkAge(age)) вызывается эта функция со значением, которое получено от prompt() и анализируется возвращенное ею значение. Можно было бы и так сделать:

var age = prompt ("сколько лет вам?", 18);
var check = checkAge(age);
if (check) { ....


Но большого смысла в этом нет.

Zay 28.05.2020 21:24

Вроде понятно, спасибо. Просто хотел перевести всё на пррстой и понятный мне язык)... и наверное не правильно выразился. И всё таки можно сказать что : if (checkAge (age)) дает толчёк к выполнению функции?

laimas 28.05.2020 21:36

Ну если переводить на понятный и принять "толчок", то проще будет так:

if( здесь вызываем функцию после выполнения которой тут будет true или false ), что и нужно, ибо if это анализ булевого значения. Стоит только помнить, что true также вернет, например, значение больше 0, не пустая строка.

Zay 28.05.2020 21:42

Спасибо, удачи.


Часовой пояс GMT +3, время: 14:43.