學習目標: 為什麼需要函數 根據語法書寫函數 根據需求封裝函數 形參和實參的傳遞過程 使用函數的返回值 使用arguments獲取函數的參數 1.函數的實參和形參 <script> //函數形參實參個數匹配 function getSum(num1, num2){ //num1 num2 為形參 c ...
學習目標:
為什麼需要函數
根據語法書寫函數
根據需求封裝函數
形參和實參的傳遞過程
使用函數的返回值
使用arguments獲取函數的參數
1.函數的實參和形參
<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.函數的返回值
2.1 return 語句
<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>2.5.非要返回多個值,用數組
//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() {};
和變數命名很相似