为什么这个循环产生未定义?

时间:2016-07-26 01:40:54

标签: javascript

为什么会有第11次迭代,为什么'未定义'在它打印?

var num = 10;
var start = 0;
function x(){
    while (start <= num){
        console.log(start + '<br>');
        start++;
    }
}
console.log(x());

5 个答案:

答案 0 :(得分:3)

函数x不返回值 - 因此undefined部分。由于条件为start <= 10,因此有11次迭代从0到10计数。

答案 1 :(得分:2)

因为函数x没有返回任何内容而你输出console.log

答案 2 :(得分:0)

因为x()没有返回值,并且在0到10之间有11次迭代。如果将start <= num更改为start < num,则只有10次迭代。此外,您可以单独执行它,而不是记录x(),它将运行代码并记录10次迭代。

答案 3 :(得分:0)

javascript中没有return语句的所有函数默认返回undefined

答案 4 :(得分:-1)

因为x()在console.log()时没有返回任何内容。

&#13;
&#13;
var num = 10;
var start = 0;
function x(){
    while (start <= num){
        console.log(start);
        start++;
    }
}
x();
&#13;
&#13;
&#13;

如果你在该函数中返回一些内容,那么它将输出返回值。

&#13;
&#13;
var num = 10;
var start = 0;
function x(){
    while (start <= num){
        console.log(start);
        start++;
    }
  return 'END';
}
console.log(x());
&#13;
&#13;
&#13;

现在该功能返回&#39; END&#39;。