js函数
定义函数
js函数的两种定义方法:
function abs(x) {
if (x >= 0) {
return x;
} else {
return -x;
}
}
这种方法定义的函数是一个匿名函数
var abs = function (x) {
if (x >= 0) {
return x;
} else {
return -x;
}
};
调用函数
通过变量abs就可以调用该函数
注意:注意第二种方式按照完整语法需要在函数体末尾加一个 ;
JavaScript允许传入任意个参数而不影响调用
abs(10, 'blablabla'); // 返回10
abs(-9, 'haha', 'hehe', null); // 返回9
abs(); // 返回NaN
argument
arguments,它只在函数内部起作用,并且永远指向当前函数的调用者传入的所有参数。arguments类似Array但它不是一个Array
要把中间的参数b变为“可选”参数,就只能通过arguments判断,然后重新调整参数并赋值。
// foo(a[, b], c)
// 接收2~3个参数,b是可选参数,如果只传2个参数,b默认为null:
function foo(a, b, c) {
if (arguments.length === 2) {
// 实际拿到的参数是a和b,c为undefined
c = b; // 把b赋给c
b = null; // b变为默认值
}
// ...
}
rest参数
function foo(a, b, ...rest) {
console.log('a = ' + a);
console.log('b = ' + b);
console.log(rest);
}
foo(1, 2, 3, 4, 5);
// 结果:
// a = 1
// b = 2
// Array [ 3, 4, 5 ]
foo(1);
// 结果:
// a = 1
// b = undefined
// Array []
- [ ] 用rest参数编写一个sum()函数,接收任意个参数并返回它们的和:
function sum(...rest) {
var result = 0;
rest.forEach(function (v) {
result += v;
})
return result;
}