Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Непонятное поведение функции (https://javascript.ru/forum/misc/67812-neponyatnoe-povedenie-funkcii.html)

AlVar 09.03.2017 21:22

Непонятное поведение функции
 
Здравствуйте, я только делаю свои первые шаги в программировании, вот моя учебная программа:

<<meta charset="utf-8">
<script>
hello();
function hello() {
var name = prompt('Назовите Ваше имя'); // пользователь вводит своё имя
return "Привет, " + name + "!";
}
alert (hello());
</script>

Странно по моему мнению вот что:
Функция предлагает два раза ввести имя. При первом проходе она запрашивает имя, присваивает его для переменной name, возвращает значение функции, потом вновь запускается функция, где name становится undefined, только после повторного прохождения функции программа срабатывает. Объясните, пожалуйста, почему так может происходить. P.S. Если объявлять переменную name вне функции, то всё нормально.

Paguo-86PK 09.03.2017 21:51

function hello() {
    var name = prompt('Назовите Ваше имя'); // пользователь вводит своё имя
    return "Привет, " + name + "!";
}
alert(hello());

ksa 10.03.2017 09:43

Цитата:

Сообщение от AlVar
Объясните, пожалуйста, почему так может происходить.

Если дважды, как ты, вызывать функцию. ;)
Цитата:

Сообщение от AlVar
// Первый
hello();
function hello() {
var name = prompt('Назовите Ваше имя'); // пользователь вводит своё имя
return "Привет, " + name + "!";
}
// Второй
alert (hello());



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