引言
函数在JS中的角色定位,就是完成特定代码的一个集合。
比如说要实现一个求余功能,在A代码块里面要使用,B代码块也要使用,那么为了给我们的代码增加健壮性,可以将求余功能封装成一个函数,当需要求余的时候,直接调用函数即可。即:将复杂的事情简单化
JS中函数常见的声明方式
- 函数声明方式
function函数名(参数1,参数2,...){函数体}
例:
//定义函数
function sum(num1,num2) {
return num1+num2;
}
//调用函数
console.log(sum(1, 2));
- 函数表达式声明方式
var 变量名 = function (参数1,参数2,...){函数体};
例:
//声明函数
var add =function (num1,num2) {
return num1+num2;
};
//调用函数
console.log(add(2, 2));
- 使用Function构造函数
var 变量名 = new Function(‘参数1’,‘参数2‘,...,’函数体');
例:
//声明函数
var add =new Function('num1','num2','return num1+num2;');
//调用函数
console.log(add(3, 2));
三种声明方法的区别:
- JS解析器会优先将当前作用域的函数声明提前到整个作用域的最前面。即:第一种函数直接声明方法会直接提到最前
将整个数组传入函数
上述的例子中,实参都是一个常量数字,为了更加深入函数的传参,这里以一个数组作为实参传入函数进行计算数组中的和为例子巩固。
//声明函数
function sum(arr){
var value =0;
for(var i=0;i<arr.length;i++){
value+=arr[i];
}
return value;
}
//调用函数
var arr=[1,2,3];
console.log(sum(arr));
Arguments对象的使用
Arguments对象是函数中的一个对象,包含了传入函数中所有的参数,arguments并不是一个数组,只是与数组相似,除了拥有Length属性之外,数组的所有属性和方法都不具备。
因此,上述的数组求和例子可以以Arguments对象,增强代码的健壮性
//声明函数
function sum(){
var value = 0;
for(var i=0;i<arguments.length;i++){
value+=arguments[i];
}
return value;
}
//调用函数
console.log(sum(1,2,3));