Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Функции, объявление функций (https://javascript.ru/forum/misc/84585-funkcii-obyavlenie-funkcijj.html)

DenisZ 21.10.2022 06:31

Функции, объявление функций
 
Здравствуйте! У меня есть код
makeHeader ("Знакомимся с функциями")
// Функция для генерирования случайных чисел и записи 
//и в текстовую строку:
function getRandText(n){
  var txt="Случайные целые числа (от 1 до 10): <br>*" 
  for(var k=1;k<=n;k++){
  txt+=myRand()+" * "
 txt+="<br>"
 return txt
 }
 // Отображение 20 случайных чисел:
 document.write(getRandText(20))
 // Функция для генерирования случайных целых чисел: 
 function myRand(){
 return 1+Math.floor(10*Math.random())
 }
 // Функция для отображения заголовка:
 function makeHeader(t){
  document.write("<h4>"+t+"</h4>")}
}

VScode не выдает никаких ошибок, однако код не выполняется.
Пробовал запускать в Sandbox, там выдаются такие сообщения:

makeHeader is not defined
'getRandText' is defined but never used. (no-unused-vars)
'makeHeader' is defined but never used. (no-unused-vars)
'makeHeader' is not defined. (no-undef)

Как исправить данную ситуацию?

рони 21.10.2022 07:14

DenisZ,
читать про видимость, строка 1 не может заглянуть в строку 4, а именно там и находится нужная функция.
https://learn.javascript.ru/function-expressions
Цитата:

Function Declaration находится в блоке {...}, функция доступна везде внутри блока. Но не снаружи него.

напишите каждую функцию отдельно от других.
и лучше забыть про document.write,
https://learn.javascript.ru/modifyin...document-write
проще будет искать ошибки, и легче строить html.

да и 9 строка тоже выстрел в холостую, если не сказать в ногу.

рони 21.10.2022 07:22

DenisZ,
<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
</head>
<body>
    <script>
        // Функция для отображения заголовка:
        function makeHeader(t) {
            document.write("<h4>" + t + "</h4>")
        }
        makeHeader("Знакомимся с функциями")
        // Функция для генерирования случайных целых чисел:
        function myRand() {
            return 1 + Math.floor(10 * Math.random())
        }
        // Функция для генерирования случайных чисел и записи
        //и в текстовую строку:
        function getRandText(n) {
            var txt = "Случайные целые числа (от 1 до 10): <br>"
            for (var k = 1; k <= n; k++) {
                txt += " * " + myRand();
                txt += " *<br>";
            }
            return txt
        }
        // Отображение 20 случайных чисел:
        document.write(getRandText(20))
    </script>
</body>
</html>

DenisZ 21.10.2022 22:02

function spasib() {
  let t = "большое спасибо!";
  alert(t);
}
spasib();


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