2016-07-26 62 views
0

为什么会出现第11次迭代,为什么在其中打印'undefined'?为什么这个循环产生未定义?

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

0 ... 10是11次迭代 –

+0

你说得对......我的意思12 – SummerBoy

+0

没有一个12迭代 –

回答

-1

由于x()在您使用console.log()时不会返回任何内容。

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

如果您在函数返回的东西则输出的回报。

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

现在该函数返回 'END'。

+0

如果我们要显示数字0到9只? *返回开始*显示最多11,并且*返回num *显示10两次。困惑:/ – SummerBoy

2

由于功能x不返回任何东西,你console.log -ing其输出。

3

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

0

由于x()没有返回值,并且在0和10之间有11次迭代。如果将start <= num更改为start < num,则只会有10次迭代。另外,不是记录x(),你可以自己执行它,它将运行代码并记录10次迭代。

0

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

+0

完美答案!现在我知道为什么:)谢谢 – SummerBoy

相关问题