<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        JS高階函數原理與用法實例分析

        來源:懂視網 責編:小采 時間:2020-11-27 22:02:08
        文檔

        JS高階函數原理與用法實例分析

        JS高階函數原理與用法實例分析:本文實例講述了JS高階函數原理與用法。分享給大家供大家參考,具體如下: 如果您正在學習JavaScript,那么您必須遇到高階函數這個術語。這聽起來復雜,其實不然。 使JavaScript適合函數式編程的原因是它接受高階函數。 高階函數在JavaScript中廣泛
        推薦度:
        導讀JS高階函數原理與用法實例分析:本文實例講述了JS高階函數原理與用法。分享給大家供大家參考,具體如下: 如果您正在學習JavaScript,那么您必須遇到高階函數這個術語。這聽起來復雜,其實不然。 使JavaScript適合函數式編程的原因是它接受高階函數。 高階函數在JavaScript中廣泛

        要完全理解這個概念,首先必須了解函數式編程是什么一等函數(first-Class Function)以及的概念。

        函數式編程

        在大多數簡單的術語中,函數編程是一種編程形式,您可以將函數作為參數傳遞給其他函數,并將它們作為值返回。在函數式編程中,我們根據函數思考和編碼。

        JavaScript,Haskell,Clojure,Scala和Erlang是實現函數式編程的一些語言。

        一等函數

        如果您一直在學習JavaScript,您可能聽說過JavaScript將函數視為一等公民。那是因為在JavaScript或任何其他函數式編程語言中,函數是對象。

        在JavaScript中,函數是一種特殊類型的對象。他們是Function對象。

        在JavaScript中,您可以使用其他類型(如對象,字符串或數字)執行的所有操作函數都可以執行。您可以將它們作為參數傳遞給其他函數(回調函數),將它們分配給變量并傳遞它們等等。這就是JavaScript中的函數被稱為First-Class函數(一等函數)的原因。

        高階函數

        高階函數是對其他函數進行操作的函數,可以將它們作為參數或通過返回它們。簡單來說,高階函數是一個函數,它接收函數作為參數或將函數作為輸出返回。

        例如Array.prototype.mapArray.prototype.filter并且Array.prototype.reduce是一些高階功能,內置的語言。

        運行高階函數

        讓我們看一下內置高階函數的一些例子,看看它與我們不使用高階函數的解決方案的比較。

        Array.prototype.map

        map()方法通過調用作為輸入數組中每個元素的參數提供的回調函數來創建一個新數組。該map()方法將從回調函數中獲取每個返回值,并使用這些值創建一個新數組。

        傳遞給回調函數map()方法接受3個參數:element,index,和array。

        假設我們有一個數組,我們想要創建一個新數組,其中包含第一個數組的每個值的兩倍。讓我們看看如何使用和不使用高階函數來解決問題。

        不用高階函數

        const arr1 = [1,2,3]; 
        const arr2 = [];
        for(let i = 0; i <arr1.length; i ++){ 
         arr2.push(arr1 [i] * 2); 
        }
        //打印[2,4,6] 
        console.log(arr2);
        
        

        使用高階函數

        const arr1 = [1,2,3];
        const arr2 = arr1.map (function (item) { 
         return item * 2; 
        }
        console.log(arr2)
        
        

        我們可以使用箭頭函數語法使其更短

        const arr1 = [1, 2, 3];
        const arr2 = arr1.map(item => item * 2);
        console.log(arr2);
        
        

        創建我們自己的高階函數

        到目前為止,我們看到了語言中內置的各種高階函數。現在讓我們創建自己的高階函數。

        我們假設JavaScript沒有原生map方法。我們可以自己構建它,從而創建我們自己的高階函數。

        假設我們有一個字符串數組,我們希望將此數組轉換為整數數組,其中每個元素表示原始數組中字符串的長度。

        const strArray = ['JavaScript', 'Python', 'PHP', 'Java', 'C'];
        function mapForEach(arr, fn) {
         const newArray = [];
         for(let i = 0; i < arr.length; i++) {
         newArray.push(
         fn(arr[i])
         );
         }
         return newArray;
        }
        const lenArray = mapForEach(strArray, function(item) {
         return item.length;
        });
        // prints [ 10, 6, 3, 4, 1 ]
        console.log(lenArray);
        
        

        在上面的例子中,我們創建了一個高階函數mapForEach,它接受一個數組和一個回調函數fn。此函數循環遍歷提供的數組,并在每次迭代時調用函數調用fn內的回調函數newArray.push

        回調函數fn接收數組的當前元素并返回該元素的長度,該元素存儲在newArray。for循環完成后,newArray返回并分配給lenArray。

        結論

        我們已經了解了高階函數和一個內置的高階函數。我們還學習了如何創建自己的高階函數。

        簡而言之,高階函數是一個函數,它可以接收函數作為參數,甚至可以返回一個函數。高階函數就像常規函數一樣,具有接收和返回其他函數的附加能力,即參數和輸出。

        更多關于JavaScript相關內容可查看本站專題:《JavaScript常用函數技巧匯總》、《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》及《JavaScript數學運算用法總結》

        希望本文所述對大家JavaScript程序設計有所幫助。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        JS高階函數原理與用法實例分析

        JS高階函數原理與用法實例分析:本文實例講述了JS高階函數原理與用法。分享給大家供大家參考,具體如下: 如果您正在學習JavaScript,那么您必須遇到高階函數這個術語。這聽起來復雜,其實不然。 使JavaScript適合函數式編程的原因是它接受高階函數。 高階函數在JavaScript中廣泛
        推薦度:
        標簽: 原理 js 例子
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 无码一区二区三区免费| 香蕉免费一级视频在线观看| 1000部禁片黄的免费看| 亚洲四虎永久在线播放| 国内少妇偷人精品视频免费| 亚洲精品无码专区久久久| 中文字幕免费观看全部电影| 亚洲中文久久精品无码ww16| 青柠影视在线观看免费高清| 亚洲AV人无码激艳猛片| 亚洲香蕉免费有线视频| 中文文字幕文字幕亚洲色| 黄网址在线永久免费观看| 亚洲日韩久久综合中文字幕| 国产一区二区三区无码免费| 免费在线观看一区| 国产AV无码专区亚洲AV男同 | 久久久久久久91精品免费观看| 亚洲激情校园春色| 成年女人免费视频播放体验区| 日韩国产精品亚洲а∨天堂免| 亚洲一区日韩高清中文字幕亚洲 | 色老头综合免费视频| 中文字幕第13亚洲另类| 日韩精品在线免费观看| 亚洲va乱码一区二区三区| 免费无码又爽又刺激毛片| 黄色视频在线免费观看| 亚洲精品日韩专区silk| 国产精品免费播放| 叮咚影视在线观看免费完整版| 亚洲13又紧又嫩又水多| 不卡一卡二卡三亚洲| 四虎永久在线精品免费观看视频| 亚洲欧美成人一区二区三区| 国产亚洲色婷婷久久99精品91| 91精品啪在线观看国产线免费| 亚洲精品无码久久久久久| 久久国产亚洲电影天堂| 免费看香港一级毛片| 国产午夜精品免费一区二区三区|