函数
假如须要屡次运用统一段代码,可以把它们封装成一个函数。函数就是一组许可在你的代码里随时挪用的语句。事实上,每一个函数现实是一个短小的剧本。
先对函数做出定义再挪用是一个优越的编程习气。下面是一个简朴的示例函数:
function shout() {
var beatles = Array("John","Paul","George","Ringo");
for (var count = 0; count < beatles.length; count++ ) {
alert(beatles[count]);
}
}
这个函数里的轮回语句将顺次弹出对话框来显现Beatles乐队成员的名字。假如想在本身的剧本里实行这一行动,可以随时运用以下的语句来挪用这个函数:
shout();
每当须要反复做一件事,都可以应用函数来防止反复键入大批的雷同内容。可以将差别的数据通报给它们,而它们将运用这些数据去完成预定的操纵。通报给函数的数据称为参数(argument)。
定义一个函数的语法:
function name(arguments) {
statements;
}
JavaScript供应了很多内建函数,在前面屡次涌现过的alert就是一例。这个函数须要我们供应一个参数,它将弹出一个对话框来显现这个参数的值。
在定义函数时,可以为它声明恣意多个参数,只要用逗号把它们分开开来就行。在函数额内部,你可以像运用一般变量那样运用它的任何一个参数。
下面是一个须要通报两个参数的函数。假如把两个数值通报给这个函数,这个函数将对它们举行乘法运算:
function multiply(num1,num2) {
vartotal = num1 * num2;
alert(total);
}
在定义了这个函数的剧本里,我们可以从恣意位置去挪用这个函数,以下所示:
multiply(10,2);
屏幕上会马上弹出一个显现乘法运算效果(20)的alert对话框。函数不仅可以(以参数的情势)吸收数据,还可以返回数据。
可以建立一个函数并让它返回一个数值、一个字符串、一个数组或一个布尔值。这须要用到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关键字来定义变量,就可以防止任何情势的二次定义隐患。