目标:解决以下问题
- 函数的使用
方式1:函数使用分为两步:函数声明和函数调用
//1.声明函数 //function 函数名(){ //函数体 //} //2.函数调用 //函数名(); //函数的使用 function sayHi(){ console.log('新垣结衣我爱你'); } sayHi(); //求1~100的累加和 function add(){ var sum=0; for(var i=1;i<=100;i++){ sum+=i; } console.log(sum); } add();
方式2:var 变量名=function(){}//匿名函数
var fun=function(aru){ console.log(aru); } fun('我是星野源');
- 根据需求封装函数
//封装冒泡排序 function sort(arr){ var temp=0; for(var i=0;i<arr.length-1;i++){ for(var j=0;j<arr.length-i-1;j++){ if(arr[j]<arr[j+1]){ temp=arr[j+1]; arr[j+1]=arr[j]; arr[j]=temp; } } } return arr; } console.log(sort([4, 2, 3, 1, 5]));
- 说出形参和实参的传递过程
//形参接收实参 function eat(cook){ console.log(cook); } eat('武汉热干面'); eat('猪蹄'); //利用函数求任意两个数的和 function add(num1,num2){ console.log(num1+num2); } add(2,3); //累加 function getSum(start,end){ var sum=0; for(var i=start;i<=end;i++){ sum+=i; } console.log(sum); } getSum(1,100) </script>
函数实参和形参匹配问题:
1.实参和形参个数一致,则正常输出结果;
2.实参个数多于形参个数,则按照形参个数输出结果
3.实参个数少于形参个数,则未定义的形参会输出undefined
- 能够使用函数的返回值
1.函数只是实现某个功能,最终的结果需要返回给函数调用者
function add(num1,num2){ return num1+num2; } console.log(add(2,4)); //求任意两个数的最大值 function getMax(num1,num2){ return num1>num2? num1: num2; // if(num1>num2){ // return num1; // }else{ // return num2; // } } console.log(getMax(20,23)); //案例:求数组中的最大值 function getMax(arr){ var max=arr[0]; for(var i=1;i<arr.length;i++){ if(arr[i]>max){ max=arr[i]; } } return max; } console.log(getMax([5,2,99,101,67,77]));
2.return有终止函数的功能
//return的终止函数作用 function add(num1,num2){ return num1+num2; alert('我不会被执行') } console.log(add(2,4));
3.return只能返回一个值
4.函数中有return只能返回return后面的值,否则返回undefined
- 能够使用arguments获取函数的参数
arguments实际上是当前函数的一个内置对象,所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参
1.是一个伪数组,并不是真正意义上的数组
2.具有数组的length属性,按照索引的方式进行存储
3.他没有真正数组的一些方法比如pop(),push()等等
function say(){ console.log(arguments); console.log(arguments.length); console.log(arguments[3]); } say(1,3,5,'嘟嘟嘟') //求任意个数的最大值 function getMax(){ var max=arguments[0]; for(var i=1;i<arguments.length;i++){ if(arguments[i]>max){ max=arguments[i]; } } return max; } console.log(getMax(1,4,6,45,56,67)); //利用函数翻转任意数组 function flip(arr){ var arr1=[]; for(var i=arr.length-1;i>=0;i--){ arr1[arr1.length]=arr[i]; } return arr1; } console.log(flip([1,2,3,4,5,6,7]));