學習目標:數組
爲何須要函數函數
根據語法書寫函數學習
根據需求封裝函數spa
形參和實參的傳遞過程code
使用函數的返回值對象
使用arguments獲取函數的參數blog
1.函數的實參和形參ip
<script> //函數形參實參個數匹配 function getSum(num1, num2){ //num1 num2 爲形參 console.log(num1+num2); } // 1.若是實參個數和形參個數一致則正常輸出結果 // 2.若是實參個數多於形參個數 會取到形參個數 getSum(1,2,3); //123 爲實參 // 3.若是實參個數小於形參的個數 多餘的形參定義爲undefined 最終結果就是NaN //形參能夠看做不用聲明的變量 num2是一個變量可是沒有接收值 結果就是undefined getSum(1);//NaN //建議 咱們儘可能讓實參個數和形參個數相匹配
2.函數的返回值get
2.1 return 語句io
<script> //函數是作某件事或者實現某種功能 function cook(aru){ console.log(aru); } cook('大肘子'); //函數的返回值格式 /* function 函數名(){ return 須要返回的結果; } 函數名(); */ //(1)咱們函數只是實現某種功能,最終的結果須要返回函數的調用者 函數名() 經過return()來實現 //(2)只要函數遇到return就把後面的結果 返回給函數的調用者 函數名() = return後面的結果 //3.代碼驗證 function getResult(){ return 666; } getResult(); //getResult = 666; console.log(getResult()); // 4.求任意兩個數的和 function getSum(sum1,sum2){ return sum1+sum2; } console.log(getSum(1,2)); </script>
2.2函數返回值實例
任意兩個數的最大值
function getMax(sum1,sum2){ /* if (sum1 > sum2) { return sum1 ; }else{ return sum2 ; } */ return sum1 > sum2 ? sum1 : sum2; } console.log(getMax(2,3));
任意一個數組中的最大值
</script> function getarrMax(arr){ //arr接受一個數組 var max = arr[0]; for(var i = 0 ;i<arr.length ; i++) { if(arr[i] > max) { max = arr[i]; } } return max; } var re = getarrMax([5,2,99,101,67,77]);//實參是一個數組 console.log(re); </script>
2.3 return終止函數
return以後的代碼就再也不執行了
<script> //函數返回值注意事項 //1.return終止函數 function getSum(num1,num2){ return num1+num2;//return 後面的代碼不會被執行 alert('我是不會被執行的偶') } console.log(getSum(1,2)); </script>
2.4 return 只能返回一個值。若是逗號隔開多個值,以最後一個爲準
<script> // function getSum1(num1,num2){ return num1,num2;//return 返回的接軌是最後一個值 } console.log(getSum1(1,2)); </script>
//3.非要返回多個值,用數組 function getResult(num1,num2){ return [num1+num2 , num1 - num2 , num1 * num2 , num1 / num2]; } console.log(getResult(1,2));
2.6 函數沒有return返回undefined
function getResult(num1,num2){ } console.log(getResult(1,2));//沒有return返回undefined;
3.break,continue,return的區別
break 結束當前循環體(for while)
continue 跳出本次循環,繼續執行下次循環(for while )
return 不只能夠退出循環 還能返回return語句中的值 同時還能夠結束當前函數體內的代碼
4.arguments的使用
當咱們不肯定有多少個參數傳遞的時候,能夠用arguments來獲取。在JavaScript中,arguments實際上他是當前函數的一個內置對象。全部函數都內置了一個aguments對象,arguments對象存儲了了傳遞函數的全部實參。
<script> // arguments的使用 只有函數纔有,arguments對象 並且是每一個函數都內置好了這個arguments function fn(){ console.log(arguments);//裏面存儲了全部傳遞過來的實參 arguments = [1,2,3] console.log(arguments.length); console.log(arguments[2]); // 咱們能夠按照數組的方式遍歷arguments for (var i=0 ; i < arguments.length ; i++){ console.log(arguments[i]); } } fn(1,2,3); </script>
arguments實例
//利用arguments求數組中的最大值 function getMax(){ var max = arguments[0] for(var i = 0 ; i <= arguments.length ; i++) { if(arguments[i] > max) { max = arguments[i] } } return max; } console.log(getMax(133,244,3)); </script>
5.函數的兩種聲明方式
(1)利用函數關鍵字自定義函數(命名函數)
function fn (){};
fn;
(2) 函數表達式(匿名函數)
var 變量名 = function() {};
和變量命名很類似