2017-07-19 58 views
0

當我運行下面這段代碼在Chrome的開發者工具JavaScript控制檯,爲什麼這段代碼最後打印'undefined`?

var solution = 1; 
for(var i = 1; i <= 12; ++i) 
    solution *= i; 
console.log(solution.toString()); 

我得到以下輸出:

479001600 
undefined 

當我刪除的最後一行,也就是console.log(solution.toString());,我得到只是479001600。怎麼了?

+0

那是因爲你運行該代碼不返回任何內容的長度....必須有一個愚蠢的做法。 – epascarello

+2

控制檯記錄您輸入的任何內容的最後返回值。 'console.log'「返回」'undefined',這就是你所看到的。沒有它,記錄最後一個'解* * i',顯示你想要的結果。 –

+0

@NiettheDarkAbsol就是如此。謝謝你的幫助。 –

回答

5

undefined僅僅是告訴你該語句的控制檯的方式:

console.log(solution.toString()); 

本身不,返回一個值(它輸出的值,但不會返回一個)。當您的實際代碼執行時,並不需要擔心,因爲這對開發人員控制檯而言是特定的行爲。作爲另一個例子,如果您在控制檯中鍵入:5 + 6,它將在下一個控制檯行上報告11,因爲控制檯始終要報告剛剛執行的語句返回的任何值。

1

谷歌瀏覽器中的控制檯將始終返回最後執行的語句的值。

由於您在控制檯中最後一條語句是

console.log() 

其中一個沒有回到它顯示「未定義」的任何值;

嘗試

var a=[];a.push(5); 

它會顯示1下一行作爲push方法返回新組成的陣列

相關問題