javascript绝对初学者=停留在函数返回上;“未定义”;

javascript绝对初学者=停留在函数返回上;“未定义”;,javascript,Javascript,为了锻炼身体,我试着打印出以下图案: 以下是迄今为止的代码: var偶数=“#”; var odd=“#”; 变量大小=4; var rowCount=1; var lineLength=1; 函数writeOdd(大小){ while(线宽函数打印(){ 让flag=true; for(设i=0;i

为了锻炼身体,我试着打印出以下图案:

以下是迄今为止的代码:

var偶数=“#”;
var odd=“#”;
变量大小=4;
var rowCount=1;
var lineLength=1;
函数writeOdd(大小){
while(线宽
函数打印(){
让flag=true;
for(设i=0;i<4;i++){
for(设j=0;j<8;j++){
flag?process.stdout.write(“#”):process.stdout.write(“”);
flag=!flag;
}
flag=!flag;
process.stdout.write('\n');
}
}
打印();
函数打印(){
让flag=true;
for(设i=0;i<4;i++){
for(设j=0;j<8;j++){
flag?process.stdout.write(“#”):process.stdout.write(“”);
flag=!flag;
}
flag=!flag;
process.stdout.write('\n');
}
}
打印();

问题出现在
document.write(writeEven(size))
document.write(writeOdd(size))
writeeEvent
writeOdd
不显式返回任何内容。当函数不显式返回任何内容时,默认情况下它将返回
undefined
。因此,当这些函数返回时,
undefined
将传递到
文档。write
,并写入屏幕

请注意,
document.write(writeOdd(size))
是由内而外进行计算的。首先执行
writeOdd(size)
,然后返回。返回值基本上取代了它的位置,给出了
document.write(undefined)
。然后执行
document.write(undefined)
,并将“undefined”打印到屏幕上


查看返回值的更多信息。

问题在
document.write(writeEven(size))
document.write(writeOdd(size))
writeeEvent
writeOdd
不显式返回任何内容。当函数不显式返回任何内容时,默认情况下它将返回
undefined
。因此,当这些函数返回时,
undefined
将传递到
文档。write
,并写入屏幕

请注意,
document.write(writeOdd(size))
是由内而外进行计算的。首先执行
writeOdd(size)
,然后返回。返回值基本上取代了它的位置,给出了
document.write(undefined)
。然后执行
document.write(undefined)
,并将“undefined”打印到屏幕上


查看有关返回值的详细信息。

您的函数调用document.write,因此在调用WriteEvent和writeOdd时无需使用它,而且您还缺少一个用于递增行的while循环,并且应该在每个函数中初始化线宽

var偶数=“#”;
var odd=“#”;
变量大小=4;
var rowCount=1;
函数writeOdd(大小){
var lineLength=1;

while(lineLength您的函数调用document.write,因此在调用writeEven和writeOdd时不需要使用它,而且您还缺少一个while循环来增加行数,每个函数中的lineLength都应该初始化

var偶数=“#”;
var odd=“#”;
变量大小=4;
var rowCount=1;
函数writeOdd(大小){
var lineLength=1;

while(lineLength取决于调用第一个函数的时间。如果是在解析页面之后,
document.write
会清除之前的所有内容。在所有情况下,请使用DOM操作方法,而不是
document.write
。忘记document.write In 2k17;)您正在尝试编写document.write writeEven和writeOdd的返回值,这是未定义的。作为初学者,我认为拥有良好的代码样式很重要。即底部的
if
else
不应像那样缩进,
document.write(
中,如果
块应该缩进,
行长度取决于调用第一个函数的时间。如果是在页面解析之后,
文档。write
会清除前面的所有内容。在所有情况下,使用DOM操纵方法,而不是
文档。write
忘记文档。write in 2k17;)您正在尝试编写document.write writeEven和writeOdd的返回值,这是未定义的。作为初学者,我认为拥有良好的代码样式很重要。即底部的
if
else
不应像那样缩进,
document.write(
中的
如果
块应缩进,
行长度
function print() {
  let flag = true;
  for(let i = 0; i < 4; i++) {
    for(let j = 0; j < 8; j++) {
      flag ? process.stdout.write('#') : process.stdout.write(' ');
      flag = !flag;
    }
    flag = !flag;
    process.stdout.write('\n');
  }
}
print();