Почему я получаю эту неожиданную ошибку строки?

#javascript #string #syntax-error

#javascript #строка #синтаксическая ошибка

Вопрос:

Я изучаю css js html rn и при создании простого скрипта всплывающего сообщения я начал получать неожиданную ошибку строки в следующем скрипте:

 function myFunction() {
  var xbg = prompt("Please enter your name!", "Henry Phillips");
  if (person === null || person == "")
  {
    txt= "Enter your name in the field.";
  } else {
    txt "Hello"   xbg   "! How are you today?"
  }
  document.getElementById("demo").innerHTML = txt;
}
  

Как говорит консоль, ошибка строки конкретно находится здесь:
строка

Комментарии:

1. Здесь отсутствует = символ: txt = "Hello" xbg "! How are you today?"

2. Похоже, вы забыли символ equals в части else

3. Вам не хватает = знака.

4. Действительно, неожиданно…

5. Ошибка исчезла, но по какой-то причине всплывающее сообщение не отображается: L

Ответ №1:

В вашем скрипте есть некоторые ошибки.

Сначала вы забываете = в сообщении else.

 txt = "Hello "   xbg   "! How are you today?"
----^
  

Если условие не проверяет правильное имя переменной, вы можете заменить person на xbg.

 if (xbg === null || xbg == "")
// or shorter
if (xbg amp;amp; xbg.trim())
  

И, наконец, вы не вызываете свой скрипт в другой раз, если пользователь не вводит это имя. Вы можете использовать setTimeout , чтобы дать пользователю некоторое время для чтения сообщения, прежде чем открывать приглашение в другой раз.

 setTimeout(myFunction, 500);
  

Смотрите полный исправленный код ниже

 function myFunction() {
  var xbg = prompt("Please enter your name!", "");
  if (xbg === null || xbg == "")
  {
    txt = "Enter your name in the field.";
    setTimeout(myFunction, 500);
  } else {
    txt= "Hello "   xbg   "! How are you today?"
  }
  document.getElementById("demo").innerHTML = txt;
}

myFunction();  
 <span id="demo"></span>  

Комментарии:

1. Но в этом op есть 3 ошибки, это не просто ответ на опечатку. Спасибо за эту информацию!

2. В скрипте нет ошибок, которые было бы нелегко устранить с минимальными усилиями, например, нажав F12 и заглянув в консоль. Так что этот вопрос действительно не стоит оставлять для будущих посетителей. Ваш ответ — один из немногих ответов, в котором также рассматривается логическая ошибка — также эта логическая ошибка является очень простой ошибкой новичка, которую можно было бы объяснить в комментариях, чтобы OP мог удалить вопрос

Ответ №2:

 function myFunction() {
  var person = prompt("Please enter your name!", "Put Your Name");
  if (person.trim()) {
    txt = "Hello, "   person   "! How are you today?"
  } else {
    txt = "Enter your name in the field.";
  }

  document.getElementById("demo").innerHTML = txt;
}

myFunction();  
 <div id="demo"></div>  

Вы можете найти отредактированный скрипт здесь.

Комментарии:

1. Ранее это было по-другому, я отредактировал, но предыдущее тоже работало.

Ответ №3:

итак, в основном у вас здесь опечатка: измените person с помощью xbg

 function myFunction() {
  var xbg = prompt("Please enter your name!", "Henry Phillips");
  if (xbg === null || xbg == "")
  {
    txt= "Enter your name in the field.";
  } else {
    txt ="Hello"   xbg   "! How are you today?"
  }
  document.getElementById("demo").innerHTML = txt;
}