1.函数的概念
在JavaScript中我们可能会定义许多相同的代码或者功能类似的代码,这些代码可能需要大量的重复使用。虽然循环也能实现一些简单的重复操作,但是具有局限性,这时我们就可以使用函数。
函数就是封装了一段被重复使用的代码块,目的就是为了重复使用代码。
2.函数的使用
- 函数声明
- 函数调用
1.函数声明:
语法结构:
function 函数名(){
函数体
}
代码:
//声明函数
function Hello(){
console.log('hello~');
}
2.函数调用:
//函数的调用
Hello();
注意:声明函数并不会执行函数里面的代码,只有被调用的时候才会执行。
案例:函数求1~100的累加和
代码:
<script>
function getSum(num1,num2){
var sum=0;
for(var i=num1;i<=num2;i++){
sum+=i;
}
console.log(sum);
}
getSum(1,100);
</script>
3.函数的参数
在声明函数时,可以在函数名称后面的小括号中添加一些参数,这些参数被称为形参,在调用函数时,同样也需要传递相应的参数,这些参数被称为实参。
形参:形式上的参数,函数定义的时候,传递的参数,当前并不知道是什么。
实参:实际上的参数,函数调用的是够,传递的参数,实参是传递给形参的。
利用函数的参数可以让函数重复执行不同的代码。
代码:
<script>
function eat(food){
console.log(food);
}
eat('酸辣土豆丝');
eat('鱼香肉丝');
</script>
函数的匹配值问题:
参数个数 | 说明 |
实参个数等于形参个数 | 输出正确的结果 |
实参个数多于形参个数 | 只取到形参的个数 |
实参个数小于形参个数 | 多的形参定义为undefined,结果为NaN |
代码:
<script>
function getSum(sum1,sum2){
var sum=sum1+sum2;
console.log(sum);
}
//实参个数等于形参个数
getSum(1,2)//3
//实参个数大于形参个数
getSum(1,2,3)//3
//实参个数小于形参个数
getSum(1)//NaN
</script>
4.函数的返回值
有的时候,我们希望函数将得到的值返回给调用者,使用return语句就可以实现了。
语法结构:
function 函数名(){
return 返回值
}
console.log(函数名());
代码:
<script>
//无参
function eat(){
return '酸辣土豆丝';
}
console.log(eat());//酸辣土豆丝
//有参
function getSum(num1,num2){
return num1+num2;
}
console.log(getSum(1,2));//3
</script>
注意:return 只能返回一个值 ,并且返回的是最后一个值。
5.arguments的使用
当我们不确定有多少个参数传递的时候,可以用arguments来获取。子啊JavaScript中。arguments实际上它是当前函数的一个内置对象。所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参。
arguments展示形式是一个伪数组,因此可以进行遍历,伪数组具有以下特点:
- 具有length属性
- 按索引方式存储数据
- 不具有数组的push,pop等方法
代码案例:
<script>
function num(){
console.log(arguments);//[1,2,3]
}
num(1,2,3);
//比较最大值
function max(){
var max=arguments[0];
for(var i=0;i<arguments.length;i++){
if(max<=arguments[i]){
max=arguments[i];
}
}
return max;//32
}
console.log(max(1,2,32));//32
</script>
6.函数的两种声明方式
- 函数关键字声明函数(命名函数)
- 函数表达式声明函数 (匿名函数)
代码:
<script>
//1.利用函数关键字自定义函数(命名函数)
function Hello(){
}
Hello();
//函数表达式(匿名函数)
var Hi=function(){
console.log('我是函数表达式');
}
Hi();//Hi是变量名,不是函数名
</script>