|
|
Javascript 入门到精通
第 13 页: 参数及其返回值
|
|
尽管无参数的函数在减少写源码工作量,HTML源码可读
性上很有用,但有参数的函数会更为有用。
上一例中,当返回的分、秒值小于10时会有问题发生。
我们想要看到的秒值是04而非4。我们可以这样做:
|
var the_minute = the_date.getMinutes();
if (the_minute < 10)
{
the_minute = "0" + the_minute;
}
var the_second = the_date.getSeconds();
if (the_second < 10)
{
the_second = "0" + the_second;
}
|
它会非常有效。但是注意,同样的源码你写了两次:若
某件东西小于10,则前面加“0”。所以要考虑当用同一
代码要多次重写时,用函数来做。本例中我写了一个叫
fixNumber的函数: |
function fixNumber(the_number)
{
if (the_number < 10)
{
the_number = "0" + the_number;
}
return the_number;
}
|
fixNumber的参数是the_number。一个参数也是一
个变量,当该函数被调用时,其参数值也被设置。
在本例中,我们这样调用函数: |
var fixed_variable = fixNumber(4);
|
参数the_number在函数中设置为4。到现在你应该
对fixNumber的主体有了一定的了解。它的意思
是:如果变量the_number小于10,则在它的前面加
一个0。这里面新的内容是return指令:返回
the_number的值。在下面的情况中就会用到return
指令: |
var some_variable = someFunction();
|
变量some_variable的值是函数someFunction() 的
返回值。在fixNumber中,我加入: return
the_number,则退出函数并将返回the_number的值
返回给任何一个等待被设置的变量。所以,我这样
书写代码: |
var fixed_variable = fixNumber(4);
|
the_number的初始值将通过函数调用被设置为4,然
后由于4小于10,所以the_number将被改为"04"。
然后the_number值被返回,而且变量
fixed_variable将被设置为"04" 。为了将fixNumber包括在原始函数announceTime()
中,我添加了如下内容: |
function announceTime()
{
//get the date, the hour, minutes, and seconds
var the_date = new Date();
var the_hour = the_date.getHours();
var the_minute = the_date.getMinutes();
var fixed_minute = fixNumber(the_minute);
var the_second = the_date.getSeconds();
var fixed_second = fixNumber(the_second);
//put together the string and alert with it
var the_time = the_hour + ":" + fixed_minute + ":" + fixed_second;
alert("The time is now: " +the_time);
}
|
假定时间链接被点击时,时间为12:04:05。用new
Date()获得日期,用getHours()获得小时,用前面
所属方法获得分钟,分钟在本例中应该是4, 然后
调用fixNumber,其参数为the_minute: |
var fixed_minute = fixNumber(the_minute);
|
当fixNumber()被调用时,参数the_number被设置
为the_minute。在本例中由于the_minute是4,所
以the_number将被设置为4。设置完参数后,我们
进入函数主体。由于4小于10,the_number被改变
为"04",然后the_number值用return指令返回。当
"04" 被fixNumber返回后,本例fixed_minute 就
等于"04"。 我们一步一步来研究该过程。假定时间为
12:04:05。
我们从函数announceTime()开始
- the_minute = the_date.getMinutes();
则the_minute = 4
- fixed_minute = fixNumber(the_minute);
等于函数fixNumber()并将其值返回给
fixed_minute
现在进入函数fixNumber()
- 函数fixNumber(the_number)
fixNumber()用the_minute的值调用,
the_minute值是4,所以现在the_number = 4
- 如果(the_number < 10) {the_number =
"0"
+ the_number;}
由于4小于10,所以the_number现在等于"04"
- 返回the_number值
退出该函数并返回值"04"
现在已经退出函数fixTime(),所以现在我
们回到announceTime()
- 该函数返回值为"04",所以fixed_minute 现
在等于"04"
该例用了一个只有一个参数的函数。实际上
你可以为函数设置多个参数。例如该函数输
入两个数组并返回一个元素列表。
Page 1: 第四课介绍
Page 2: 循环介绍
Page 3: 循环的密码
Page 4: 再谈 WHILE循环
Page 5: For 循环
Page 6: 嵌套循环
Page 7: 循环练习
Page 8: 数组
Page 9: 数组和循环
Page 10: 文件目标模块中的数组
Page 11: 函数
Page 12: 无参数函数
Page 13: 参数及返回值
Page 14: 多于一个参数的函数
本内容由搜狐网站(www.sohoo.com.cn)提供。
|
|