有些时候,函数只是做一些诸如此类的事情:如在页面上写消息,在屏幕上移动一个对象,或者验证页面上的表单字段。其他时候,我们还希望从函数取回一些信息,毕竟,如果最终没拿到某种可口的披萨饼,那就是“Get me a slice of pizza”函数的效果并不是太好。同样,计算购物车的商品总金额的函数,如果不能使我们知道最终的总金额,说明也不是很有用。
在一些内置的JavaScript函数中,我们已经看到了返回值。例如,prompt()命令(参见2.7节)弹出了带有一个文本字段的对话框,用户在框中输入的内容将被返回。正如我们已经看到的,可以把返回值存储到一个变量中并且用它做些事情:
var answer=prompt('What month were you born?’,’');
访问者对于提示对话框的响应存储在变量answer中;然后,可以使用条件语句来测试变量中的值,或者对它做其他任何JavaScript允许对变量做的事情。
要从自己的函数返回一个值,可以使用return关键字,其后跟着想要返回的值:
function functionName(parameter1,parameter2){
//the JavaScript you want to run
return value;
}
例如,假设想要计算包含销售税的销售总金额,可以创建如下所示的一段脚本:
var TAX=.08;//8%sales tax
function calculateTotal(quantity, price){
var total=quantity*price*(1+TAX);
var formattedTotal=total.toFixed(2);
return formattedTotal;
}
第一行代码把税率存储到一个名为TAX的变量中(这使得我们只需要更改这行代码就很容易修改税率)。接下来的3行代码定义了函数。对于函数中发生的事情,现在不需要关心太多,我们将在14.3节学习如何操作数值。重要的部分是函数的第四行代码——return语句。它返回存储在变量formattedTotal中的值。
为了利用返回值,通常将其存储在一个变量中,因此,在这个例子中,可以像下面这样调用该函数:
var saleTotal=calculateTotal(2,16.95);
document.write('Total cost is:$’+saleTotal);
在这个例子中,值2和16.95传递给函数。第一个数值表示购买的商品的数目,第二个数值表示其单价。结果从函数返回,并且存储在一个新变量saleTotal中,该变量用作document.write()命令的一部分,用于显示销售的总金额(包含税)。
注意:return关键字不应该是一个函数中的最后一句,因为只要浏览器的JavaScript解释器遇到return语句,它会退出该函数。在函数中,跟在return语句之后的任何代码行将不会执行。
然而,不一定必须把返回值存储在一个变量中。可以在另一条语句中直接使用返回值,例如:
document.write('Total:$’+calculateTotal(2,16.95));
在这个例子中,调用函数并且将其返回值添加到字符串“Total:$”后面,然后显示到文档。首先,这种使用函数的方法很难阅读,因此,我们可能希望采用一个额外的步骤只是把函数的结果存储到一个变量中,然后在脚本中使用该变量。
注意:一个函数只能返回一个值。如果想要返回多个项目,可以把值存储在一个数组中并返回数组。