function getValue() {
console.log(1);
return 2;
};
for (let i = 0; i < 1000; i++) {
getValue();
}
它會打印1千次,但這裏它會在循環結束時只返回一次。爲什麼?爲什麼我的for循環僅返回一個值?
function getValue() {
console.log(1);
return 2;
};
for (let i = 0; i < 1000; i++) {
getValue();
}
它會打印1千次,但這裏它會在循環結束時只返回一次。爲什麼?爲什麼我的for循環僅返回一個值?
它沒有運行一次。最有可能你看到的是這樣的:
見 「1000」?這意味着「1」輸出1000次。您的JavaScript控制檯只是試圖爲您節省一些空間。如果更改號碼東西是不同的,每次你會看到該消息的唯一實例:
如果你的問題是「爲什麼它說‘1’1000次,但只有‘2’單一時間「,那麼答案很簡單。您只執行該函數,但從不打印其返回值,因此您會看到返回值爲的最後一個。如果您還想打印2
,請使用console.log(getValue());
。
「爲什麼我會想要上次調用的結果???」
因爲喜歡這東西是真棒:
我的問題是爲什麼2只是一次,那太過於最後而不是10次像我 作爲函數被調用多次 是的,它運行10次,但返回值一次 –
@Autif因爲你從來沒有打印'getValue' - 你只能調用它。爲什麼你想要它打印你永遠不會讓它打印的東西?如果你想打印'2'(而不僅僅是最後的返回值),使用'console.log(getValue())'。 – h2ooooooo
@Autif見他的解釋人。 –
也許我已經得到了你的意思....
你看到1000的1比2,和你想知道爲什麼你只看到一個2?
你的函數實際上會返回2次1000次,但是你的代碼對它什麼也不做,它會「丟失」,並且控制檯輸出你最後一次可用的返回值,即getValue函數的第1000個2。
如果添加循環之後一個新的回報,你將不會看到2,你會看到這個新的返回值,就像這樣:
function getValue() {
console.log(1);
return 2;
};
for (let i = 0; i < 1000; i++) {
getValue();
};
var x=function(){
return "return value string, that you see only once in the console"}
x();
x();
,你可以看到,我們所說的X()函數兩次,但我們只能在控制檯中看到返回的字符串一次。
你怎麼說它只返回一次 –
目前還不清楚你在問什麼。你對'getValue()'的返回值沒有做任何事情;這個循環做的唯一事情就是記錄'1'千次。你沒有告訴它做任何事情。 –
爲我工作1000次:http://i.imgur.com/uc7WL9I.png –