1
 var avg = function() 
   {
     var sum = 0;
      for (var i = 0, j = arguments.length; i < j; i++) 
        {

           sum += arguments[i];
         }
      return sum / arguments.length;
   }

当我尝试这样称呼它时:

var average = avg(2,3,5);
average; // It works fine;

但是如何在不分配变量的情况下调用它?如果有人可以提出任何建议,那将是令人愉快的......谢谢。

4

4 回答 4

2

你可以简单地这样称呼它:

avg(2, 3, 5);

如果您想查看结果,请将其放入警报调用中:

alert( avg(2, 3, 5) );
于 2012-09-15T12:02:54.350 回答
0

您无需将调用函数的结果放入变量中,您可以对它做任何您喜欢的事情。

例如,将其用作警报中的值:

alert(avg(2,3,5));

您可以在另一个表达式中使用它:

var message = "The average is " + avg(2,3,5);

您可以直接在另一个调用中使用它:

someFunction(avg(2,3,5));

你甚至可以通过不做任何事情来丢弃结果,即使这在这种特定情况下没有用:

avg(2,3,5);
于 2012-09-15T12:10:12.557 回答
0

如果您不将结果放入变量或兼容的上下文中,则此函数无法输出任何内容,这使得除非您使其输出结果,否则很难使用。尝试这个 :

var avg = function() 
   {
     var sum = 0;
      for (var i = 0, j = arguments.length; i < j; i++) 
        {

           sum += arguments[i];
         }

      var retvalue = sum / arguments.length;
      consoloe.log("avg: "+retvalue);
      return retvalue ;
   }

然后它可以帮助您查看何时调用该函数。

于 2012-09-15T12:10:41.417 回答
0

您需要了解表达式的概念。

每个表达式作为一个整体代表一个值。一个表达式可以由多个子表达式组成,这些子表达式以某种方式(例如使用运算符)组合以产生一个新值。

例如:

  • 3是表示数值 3 的表达式(具体而言,是文字)。
  • 3 + 4是一个表达式,由两个文字表达式组成,作为一个整体产生值 7

当你给一个变量赋值时——比如var average =——操作符的右边=需要是一个表达式,即产生一个值的东西。

正如您所观察到的,average将被赋值为 5。因此,它avg(2, 3, 5)本身必须是一个评估为 value 的表达式5

average本身是一个表达式,表示所述变量的当前值。

最重要的是,这avg()var average =. avg()独立存在,您可以将其视为普通值,例如5(当然还有其他区别)。

如果你理解了表达式和值的概念,应该清楚如果你能做到

var average = avg(2,3,5);
average; // It works fine;

你也可以做

avg(2,3,5);
于 2012-09-15T12:33:54.763 回答