- 函数定义和调用
function abs(x) {
if (x >= 0) {
return x;
} else {
return -x;
}
}
abs(10,'balabala'); //返回10
说明:
由于JavaScript允许传入任意个参数而不影响调用,因此传入的参数比定义的参数多也没问题,虽函数内部并不需要这些参数
abs(); // 返回NaN
说明:
传入的参数比定义的少也没有问题,此时函数abs(x)接收的,调用abs()的参数可以看作是undefined,计算结果为NaN。
Arguments
只在函数内部起作用,并且永远指向当前函数的调用者传入的所有参数。arguments类似Array但它不是一个Array
实例1:
function foo(x) {
console.log('x = ' + x); // 10
for (var i=0; i<arguments.length; i++) {
console.log('arg ' + i + ' = ' + arguments[i]); // 10, 20, 30
}
}
foo(10, 20, 30);
输出结果
x = 10
arg 0 = 10
arg 1 = 20
arg 2 = 30
实例2:
function abs() {
if (arguments.length === 0) {
return 0;
}
var x = arguments[0];
return x >= 0 ? x : -x;
}
abs(); // 0
abs(10); // 10
abs(-9); // 9