为什么我得到未定义的输出Javascript

Why am I getting undefined output Javascript?

本文关键字:输出 Javascript 未定义 为什么      更新时间:2023-09-26

我在JS中的输出文本之前一直未定义。这是我的代码。

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="css/style.css">
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Learning javascript</title>
</head>
<body>
    <p id="arrayString"></p>

    <!-- Javascript -->
    <script type="text/javascript" src="JS/app2.js"></script>
</body>
</html>

这是我的 JS

var arrayString;
var myArray=["Ms.Vickies", "Old Dutch", "Lays"];
for (var i=0; i<myArray.length; i++) {
    arrayString=arrayString+myArray[i];
}
document.getElementById("arrayString").innerHTML=arrayString;

我的输出是undefinedMs.VickiesOld DutchLays

另外为什么没有空格?我是JS的新手,但正在努力。想不通。

这是因为在第一次循环迭代中,arrayString是未定义的。 改为将其设置为空字符串。

而不是像这样声明arrayString

var arrayString;

使用空字符串初始化它:

var arrayString = '';

因为您通过执行以下操作来启动空/未定义的变量: var arrayString;

您可以通过执行以下操作来修复它:var arrayString = "";

更好的是,与其使用 for 循环,不如这样做:

var myArray=["Ms.Vickies", "Old Dutch", "Lays"];
document.getElementById("arrayString").innerHTML = myArray.join(" ");

更多信息: http://www.w3schools.com/jsref/jsref_join.asp

在代码中,你刚刚声明,没有初始化。所以,只需替换

  var arrayString;

 var arrayString = '';

希望对你有帮助...谢谢。