JavaScript 之 函數

来源:https://www.cnblogs.com/qiujie-prion/archive/2020/05/29/12983848.html
-Advertisement-
Play Games

學習目標: 為什麼需要函數 根據語法書寫函數 根據需求封裝函數 形參和實參的傳遞過程 使用函數的返回值 使用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() {};

   和變數命名很相似   


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 平時常用的一些功能性函數 關於原生JS 文件大小單位轉換 /** * @desc bytesToSize 位元組單位換算 * @param bytes 傳入以bit為單位的數據 */ const bytesToSize = function (bytes) { const k = 1024; if ( ...
  • 基礎知識: 1、HTML + CSS 這部分建議在 W3school 線上教程 上學習,邊學邊練,每章後還有小測試。 之後可以模仿一些網站做些頁面。在實踐中積累了一些經驗後,可以系統的讀一兩本書,推薦《Head First HTML 與 CSS 中文版》,這本書講的太細了,我沒能拿出耐心細讀。你可以 ...
  • 學習目標:能夠說出Javascript的兩種作用域 能夠區分全局變數和局部變數 能夠說出如何在作用域鏈中查找變數的值 1.作用域 <script> //1.javaScript作用域:就是代碼名字(變數)在某個範圍內起作用和效果 目的是為了提高程式的可靠性更重要的是減少命名衝突。 //2.js的作用 ...
  • 1、javascript組成 我們平時理解的javascript和ECMAScript是同樣的東西,相信很多人,包括在開發一線很多年的老司機也容易形成這樣的誤區。但 JavaScript 的含義卻比 ECMA-262 中規定的要多得多。實際上一個完整的javascript是由下圖所示的三個不同的部分 ...
  • 1.利用函數反轉任意數組 <script> //利用函數反轉任意數組 function arrFanzhuan(arr){ var newArr = []; for(var i = arr.length - 1 ; i >= 0 ; i--) { newArr[newArr.length] = ar ...
  • 第一階段的學習:html+css+javascript入門 我知道很多人前端入門都是w3school和菜鳥教程上學習,我個人是不推薦的。上面的知識點太多,平時工作中跟本用不到。如果你在w3School上從頭開始看知識點,你只會邊看邊忘,效率太低了。記住不要去做死記硬背的工作,用的多了自然就記住了,實 ...
  • 利用vue做的後臺管理系統是單頁面系統,當你想實現刷新的功能通常有以下幾個方法: (1)window.location.reload() 這個是原生js中提供的一種刷新方法,用於刷新當前文檔。 (2)this.$router.go(0) vue-route提供的一種方法,在history記錄中前進或 ...
  • 因為一時的疏忽,在寫表單提交的時候寫成了這樣: <form id="addEssaysForm"> <label for="essaysTitle">標題</label> <input type="text" class="form-control" name="essaysTitle" id="e ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...