[英]Why am I getting undefined output Javascript?
I keep getting undefined before my output text in JS. 在JS中输出文本之前,我一直处于未定义状态。 Here is my code.
这是我的代码。
<!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>
This is my JS 这是我的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;
my output is undefinedMs.VickiesOld DutchLays
我的输出
undefinedMs.VickiesOld DutchLays
In addition why no spaces? 另外为什么没有空格? I am new to JS but am working my way up.
我是JS的新手,但我正在努力。 Cannot figure this out.
无法解决这个问题。
It's because in your first loop iteration, arrayString
is undefined. 这是因为在您的第一次循环迭代中,
arrayString
是未定义的。 Set it equal to an empty string instead. 将其设置为等于空字符串。
Instead of declaring arrayString
like so: 而不是像这样声明
arrayString
:
var arrayString;
Initialize it with an empty string: 用空字符串初始化它:
var arrayString = '';
Because you are initiating a null/undefined variable by doing this: var arrayString;
因为您通过执行此操作来初始化null / undefined变量:
var arrayString;
You can fix it by doing this: var arrayString = "";
您可以通过执行以下操作来修复它:
var arrayString = "";
Better yet, instead of using a for
loop, you can do it like this: 更好的
for
,您可以使用以下方法for
代替使用for
循环:
var myArray=["Ms.Vickies", "Old Dutch", "Lays"];
document.getElementById("arrayString").innerHTML = myArray.join(" ");
More info: http://www.w3schools.com/jsref/jsref_join.asp 更多信息: http : //www.w3schools.com/jsref/jsref_join.asp
In code ,you have just declared,not initialized.so,just replace 在代码中,您刚刚声明了但未初始化。因此,只需替换
var arrayString;
with 与
var arrayString = '';
Hope it helps...Thank you. 希望对您有帮助...谢谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.