[英]undefined while testing a function
so I've been working on functions making star patterns and somehow I keep getting "undefined" when i ´innerHTML´ it. 所以我一直在研究制作星形图案的函数,当我使用“ innerHTML”时,总是以某种方式变得“未定义”。 Can anyone help me to see what I'm doing wrong here? 有人可以帮我看看我在做什么错吗?
pOutput.innerHTML = square(3);
poutput.innerHTML = rectangle(2,3);
function square(x) {
var z;
for (var i = 1; i<=x; i++) {
for ( var j = 1; j<=x; j++) {
z += "*";
}
z += "<br>";
}
return z
}
function rectangle(x, y) {
var z;
for (var i = 1; i<=x; i++) {
for ( var j = 1; j<=y; j++) {
z += "*";
}
z += "<br>";
}
return z
}
You should do var z = ""
otherwise the value is undefined , see this: 您应该执行var z = ""
否则该值是undefined ,请参见:
var z; console.log(z)
Full example: 完整示例:
console.log(square(3)); console.log(rectangle(2,3)); function square(x) { var z = ""; for (var i = 1; i<=x; i++) { for ( var j = 1; j<=x; j++) { z += "*"; } z += "<br>"; } return z } function rectangle(x, y) { var z = ""; for (var i = 1; i<=x; i++) { for ( var j = 1; j<=y; j++) { z += "*"; } z += "<br>"; } return z }
Look at the following snippet where I have fixed your code. 请查看以下代码段,其中已修复您的代码。 You need to initialize z with empty string. 您需要使用空字符串初始化z。
var z = "";
If it is undefined following thing went wrong 如果未定义,则出现以下错误
z += "*" -> z is undefined so z = "undefined" + "*"
document.getElementById("square").innerHTML = square(3); document.getElementById("rectangle").innerHTML = rectangle(2, 3); function square(x) { var z = ""; for (var i = 1; i <= x; i++) { for (var j = 1; j <= x; j++) { z += "*"; } z += "<br/>"; } return z } function rectangle(x, y) { var z = ""; for (var i = 1; i <= x; i++) { for (var j = 1; j <= y; j++) { z += "*"; } z += "<br/>"; } return z }
Square <div id="square"></div> <br/><br/> Rectangle <div id="rectangle"></div>
Initialize z
with "" default value of z
is undefined
at var z; 初始化z
与“”的默认值z
是undefined
的变种Z者除外;
var pOutput = document.getElementById('pOutput')
var poutput = document.getElementById('poutput')
pOutput.innerHTML = square(3);
poutput.innerHTML = rectangle(2,3);
function square(x) {
var z = "";
for (var i = 1; i<=x; i++) {
for ( var j = 1; j<=x; j++) {
z += "*";
}
z += "<br>";
}
return z
}
function rectangle(x, y) {
var z = "";
for (var i = 1; i<=x; i++) {
for ( var j = 1; j<=y; j++) {
z += "*";
}
z += "<br>";
}
return z
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.