2016-06-28 116 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