我刚刚开始学习javascript而且我编写的代码显示在输出结束时未定义? 为什么呢?
var laugh = function laughs(y) {
while (y > 0) {
console.log("ha");
y--;
}
console.log("ha!");
}
console.log(laugh(10));
这是输出:
ha
ha
ha
ha
ha
ha
ha
ha
ha
ha
ha!
undefined
答案 0 :(得分:2)
laugh
没有返回任何内容,默认情况下,某个函数会返回undefined
,并且会转到您上一次console.log
来电。
答案 1 :(得分:0)
因为函数laugh
没有返回任何值,所以结果为undefined
。
查看修改以返回"HELLO"
,这只是为了说明。
var laugh = function laughs(y) {
while (y > 0) {
console.log("ha");
y--;
}
console.log("ha!");
return "HELLO";
}
console.log(laugh(10));
答案 2 :(得分:0)
laugh()
没有显式返回值;因此它的返回类型是undefined
。您正在laugh()
内拨打console.log()
- 结果是您看到console.log()
内发生的所有laugh()
次呼叫,此外还有{{1}正在将undefined
返回的对象记录到控制台。
如果要记录函数的结果,可以返回一个字符串。像这样:
laugh()

或者,您可以删除包含函数调用的var laugh = function laughs(y) {
var str = '';
while (y > 0) {
//console.log("ha");
str += 'ha\n';
y--;
}
//console.log("ha!");
str += 'ha!\n';
return str;
}
console.log(laugh(10));
,如下所示:
console.log()