【发布时间】:2019-07-08 09:43:52
【问题描述】:
对于这个初学者的问题,我深表歉意,但我将其发布在这里作为最后的手段,试图了解它的实际工作原理。我遇到的问题是我必须使用 repl.it 完成一些练习,其中使用 console.log 打印到控制台返回未定义。例如,如果我在其中运行此代码:
function countdown(num) {
for (let i = num; i > 0; i--) {
console.log(i)
}
};
countdown(10);
打印出来:
10
9
8
7
6
5
4
3
2
1
=> undefined
现在,当我在 VS Code 中运行此代码时,它会产生相同的结果,但底部没有未定义。因为我必须使用 repl.it 并且不想打印 undefined,所以我应该使用 return 对吗?无论如何, return 在这种情况下最好使用。所以我更改了我的代码,但当然在 for 循环代码块中使用 return 会阻止循环运行,这不好。那么我这样做:
function countdown(num){
let count = 0;
for (let i = num; i > 0; i--){
count = i;
}
return count;
};
console.log(countdown(10));
但后来我只得到 1 个返回。所以我的问题是,如何在不使用 console.log() 和任何方法以及使用 return 关键字的情况下返回迭代倒计时?这纯粹是为了我的理解,而不是为了任何特定的功能。非常感谢,并为我的困惑提前道歉。
【问题讨论】:
-
该函数没有
return语句,所以默认返回undefined。repl.it打印函数的返回值,VS Code 不打印。 -
我不明白为什么它会打印 undefined - 它不在 sn-p 中(除非您在控制台记录实际功能)
-
@Pete Stack Snippets 不会自动打印语句的值,交互式 REPL 会这样做。
-
如果你想返回所有的数字,把它们放在一个数组中然后返回。
-
谢谢@Barmar,明白了!使用添加 return 仍将返回 undefined ,除非我为其分配一些要返回的东西 - 这是有道理的。我想最好的解决方案只是推送到数组,但希望在没有任何方法的情况下做到这一点。
标签: javascript read-eval-print-loop repl.it