2016-06-28 102 views
0

我想了解爲什麼這兩段代碼不提供相同的輸入,爲什麼第一塊返回'undefined'?在While循環中調用函數

var myFunction = function() { 
Math.floor(Math.random() * 2); 
}; 

while(myFunction === 0){ 
    console.log("Test"); 
    myFunction(); 
} 

console.log("Return"); 

第二件:

var myFunction = Math.floor(Math.random() * 2); 

while(myFunction === 0){ 
    console.log("Test"); 
    myfunction = Math.floor(Math.random() * 2); 
}; 

console.log("Return"); 
+1

你從哪裏返回一個函數?我沒有看到任何函數中的任何return語句。 – abhishek

回答

3

這裏有相當多的問題。我來看一遍:

1)你的函數都沒有return語句,所以他們沒有返回任何值

2)在你的第一塊,你比較myFunction的(這是一個功能)與整數(它永遠不會相同)。您可能想要在if語句中放一些括號,以便比較函數的返回值。 (這也使得呼叫在同時身體無用,因爲你無論如何都不會對返回值做任何處理)

3)在你的第二部分中,你爲myFunction指定了一個數字。這大部分都是令人困惑的,但它確實解釋了爲什麼這段代碼有效:你實際上並沒有創建一個函數。

4)同樣在你的第二部分中,你的myFunction和myfunction之間有不同的外殼,它們是而不是相同的變量。

+0

嗨艾瑞克,這是完美的,這是我失蹤的回報。第二段代碼令人困惑,因爲我命名了變量myFunction,但我不打算在這裏創建函數,而「myfunction」是一個拼寫錯誤。 – Tom