为什么会出现此意外的字符串错误?

时间:2019-03-18 12:32:48

标签: javascript string syntax-error

我正在学习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;
}

正如控制台所说,字符串错误专门位于此处: line

3 个答案:

答案 0 :(得分:2)

您的脚本中有一些错误。

首先,您会忘记else语句中的=

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

如果条件未测试好变量名,则可以用xbg代替person。

if (xbg === null || xbg == "")
// or shorter
if (xbg && 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 :(得分:1)

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>

您可以在此处找到编辑后的脚本。

答案 2 :(得分:-1)

所以基本上您在这里有错别字:用 xbg

更改 person
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;
}