第三章 函数
3-1 什么是函数
所谓函数,本质上就是一种代码的分组形式。
我们将一组代码赋予名字,便于日后调用。
通常来说,函数声明 通常由一下几个部分组成:
- function 子句
- 函数名称
- 函数所需参数,通常有0到多个参数,参数之间用逗号分割。
- 函数所执行代码块,称之为函数体。
- return 子句。如果没有显式的返回值,我们就默认为返回值是
undefined
需要注意的是,一个函数只有一个返回值,如果需要返回多个值,可以考虑放进一个数组中,以数组元素的形式返回。
3-1-1 调用函数
如果要使用一个函数,就必须要调用它。
调用方式:函数名+(参数)。
>>> var result = sum(1,2);
>>> result;
>>> 3
//调用sun()函数,返回值赋予result.
3-1-2 参数
通常定义函数时,我们会设置函数所需参数,当然如果不设置,或者调用时忘记传递数值,Javascript就会自动将其设定为undefined
。
>>> sum(1);
NaN
// 因为只设置了一个参数,所以函数将 1 与 undefined 相加。
对于所以传递来的参数,JS来者不拒。
所以即使参数传递过多,多余部分会被忽略掉。
其实,我们可以创建一些在参数数量方面更为灵活的函数。 这得益于每个函数内部都有一个内建的 arguments 数组, 它能返回函数所接收的所有参数。
>>> function args() {
return arguments; }
>>> args();
[]
>>> args(1, 2, 3, 4, "haha");
[1, 2, 3, 4, "haha"]
通过 arguments 数组,我们能进一步完善sum()函数功能, 使之能对任意数量的参数执行求和运算。
function sumOnSteroids() {
var i, res = 0;
var number_of_params = arguments.length;
for (i = 0; i < number_of_params; i++) {
res += arguments[i];
}
return res;
}
// arguments.length 返回的事函数所调用时所接收的参数数量。
// (其实arguments不是一个数组,而是一个类似数组的对象,第四章会解答)
3-2 预定义函数
Javascript 引擎中有一组可以供随时调用的内建函数。
- parseInt ( )
- parseFloat ( )
- isNaN ( )
- isFinite ( )
- encodeURI ( )
- decodeURI ( )
- encodeURICompoent ( )
- decodeURICompoent ( )
- eval ( )
3-2-1 parseInt( )
parseInt()会试图将其收到的任何输入值(通常是字符串)转换成整数类型输出。如果转换失败就返回NaN。