我在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的新手,但我正在努力工作。无法理解这一点。
答案 0 :(得分:6)
这是因为在第一次循环迭代中,arrayString
未定义。将其设置为等于空字符串。
而不是如此声明arrayString
:
var arrayString;
用空字符串初始化它:
var arrayString = '';
答案 1 :(得分:1)
因为您通过执行以下操作来启动null / undefined变量:var arrayString;
您可以通过执行以下操作来解决此问题:var arrayString = "";
更好的是,您可以这样做,而不是使用for
循环:
var myArray=["Ms.Vickies", "Old Dutch", "Lays"];
document.getElementById("arrayString").innerHTML = myArray.join(" ");
答案 2 :(得分:0)
在代码中,您刚刚声明,而不是initialized.so,只需替换
var arrayString;
与
var arrayString = '';
希望它有所帮助......谢谢。