若是须要屡次使用同一段代码,能够把它们封装成一个函数。函数就是一组容许在你的代码里随时调用的语句。事实上,每一个函数实际是一个短小的脚本。编程
先对函数作出定义再调用是一个良好的编程习惯。下面是一个简单的示例函数:数组
function shout() { var beatles = Array("John","Paul","George","Ringo"); for (var count = 0; count < beatles.length; count++ ) { alert(beatles[count]); } }
这个函数里的循环语句将依次弹出对话框来显示Beatles乐队成员的名字。若是想在本身的脚本里执行这一动做,能够随时使用以下的语句来调用这个函数:安全
shout();
每当须要反复作一件事,均可以利用函数来避免重复键入大量的相同内容。能够将不一样的数据传递给它们,而它们将使用这些数据去完成预约的操做。传递给函数的数据称为参数(argument)。函数
定义一个函数的语法:code
function name(arguments) { statements; }
JavaScript提供了许多内建函数,在前面屡次出现过的alert就是一例。这个函数须要咱们提供一个参数,它将弹出一个对话框来显示这个参数的值。ip
在定义函数时,能够为它声明任意多个参数,只要用逗号把它们分隔开来就行。在函数额内部,你能够像使用普通变量那样使用它的任何一个参数。作用域
下面是一个须要传递两个参数的函数。若是把两个数值传递给这个函数,这个函数将对它们进行乘法运算:字符串
function multiply(num1,num2) { vartotal = num1 * num2; alert(total); }
在定义了这个函数的脚本里,咱们能够从任意位置去调用这个函数,以下所示:it
multiply(10,2);
屏幕上会马上弹出一个显示乘法运算结果(20)的alert对话框。函数不只可以(以参数的形式)接收数据,还可以返回数据。io
能够建立一个函数并让它返回一个数值、一个字符串、一个数组或一个布尔值。这须要用到return语句:
function multiply(num1,num2) { var total = num1 * num2; return total; }
下面这个函数只有一个参数(一个华氏温度值),它将返回一个数值(同一温度的摄氏温度值):
function converToCelsius(temp) { var result = temp - 32; result = result / 1.8; return result; }
还能够把函数当作一种数据类型来使用,这意味着能够把一个函数的调用结果赋给一个变量:
var temo_fahrenheit = 95; var temp_celsius = convertToCelsius(temp_fahrenheit); alert(temp_celsius);
把华氏温度值95转换为摄氏温度值。这个例子中,变量temp_celsius的值将是35,这个数值由convertToCelsius函数返回。
好比下面这个例子:
function square(num) { total = num * num; return total; } var total = 50; var number = square(20); alert(total);
全局变量total的值变成了400。本意是让square()函数只把它计算出来的平方值返回给变量number,但由于未把这个函数内部的total变量明确地声明为局部变量,这个函数把名字一样是total的那个全局变量的值也改变了。
把这个函数写成以下所示的样子才是正确的:
function square(num) { var total = num * num; return total; }
如今,全局变量total变得安全了,再怎么调用square()函数也不会影响到它、
请记住,函数在行为方面应该像一个自给自足的脚本,在定义一个函数式,必定要把它内部的变量所有明确地声明为局部变量。若是你老是在函数里使用var关键字来定义变量,就能避免任何形式的二次定义隐患。