我的代码显示了什么?

时间:2018-01-26 19:33:07

标签: javascript

我刚刚开始学习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

3 个答案:

答案 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()