您的位置:寻梦网首页编程乐园JavaScriptJavascript入门到精通
Javascript 入门到精通

第 1 天 第 2 天 第 3 天 第 4 天 第 5 天
第 13 页: 参数及其返回值
作者:Thau!

尽管无参数的函数在减少写源码工作量,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()开始

  1. the_minute = the_date.getMinutes();
    the_minute = 4
  2. fixed_minute = fixNumber(the_minute);
    等于函数fixNumber()并将其值返回给
    fixed_minute
  3. 现在进入函数fixNumber()

  4. 函数fixNumber(the_number)
    fixNumber()the_minute的值调用,
    the_minute值是4,所以现在the_number = 4
  5. 如果(the_number < 10) {the_number = "0"
    + the_number;}

    由于4小于10,所以the_number现在等于"04"
  6. 返回the_number
    退出该函数并返回值"04"
  7. 现在已经退出函数fixTime(),所以现在我
    们回到announceTime()

  8. 该函数返回值为"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)提供。