2016-07-26 27 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