JS学习笔记-函数
定义函数
定义方式一
绝对值函数
function abs(x){
if(x > 0)
return x;
else
return -x;
}
一旦执行return代表函数结束,返回结果
如果没有执行return,函数执行完也会返回结果,结果即为undefined
定义方式二
var abs = function(x){ //这是一个匿名函数,但可以将结果赋值给abs,通过abs可调用函数
if(x > 0)
return x;
else
return -x;
}
调用函数
abs(2) //2
abs(-2) //2
注意:JavaScript中可以传递任意个参数,也可以不传递参数
- 假设不存在参数,如何规避
var abs = function(x){
//手动抛出异常
if(typeof x !== 'number'){
throw 'Not a number';
}
if(x >= 0){
return x;
}else
return -x;
}
- 存在多参数时
arguments
arguments是一个JS免费赠送的关键词
代表传递进来的所有的参数,是一个数组
var abs = function(x){
console.log("x->" + x);
for(var i = 0; i < arguments.length; i ++){
console.log(arguments[i]);
}
if(x >= 0){
return x;
}else
return -x;
}
但是,arguments包含所有的参数,当我们想使用多余的参数来进行附加操作时,使用arguments排除掉已有的参数显然使得代码有些复杂
if(arguments.length > 2){
for(var i = 2; i < arguments.length; i ++){
//....
}
}
rest
ES6引入新的特性,获取除了已经定义的参数之外的所有参数
function a(a,b,...rest){
console.log("a->" + a);
console.log("b->" + b);
console.log(rest);
}
注意!rest参数只能写在最后面,必须用…标识