国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JS高階函數(shù)原理與用法實(shí)例分析

2024-05-06 15:43:17
字體:
供稿:網(wǎng)友

本文實(shí)例講述了JS高階函數(shù)原理與用法。分享給大家供大家參考,具體如下:

如果您正在學(xué)習(xí)JavaScript,那么您必須遇到高階函數(shù)這個(gè)術(shù)語。這聽起來復(fù)雜,其實(shí)不然。

使JavaScript適合函數(shù)式編程的原因是它接受高階函數(shù)。

高階函數(shù)在JavaScript中廣泛使用。如果你已經(jīng)用JavaScript編程了一段時(shí)間,你可能已經(jīng)使用它們甚至不知道。

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

函數(shù)式編程

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

JavaScript,Haskell,Clojure,Scala和Erlang是實(shí)現(xiàn)函數(shù)式編程的一些語言。

一等函數(shù)

如果您一直在學(xué)習(xí)JavaScript,您可能聽說過JavaScript將函數(shù)視為一等公民。那是因?yàn)樵贘avaScript或任何其他函數(shù)式編程語言中,函數(shù)是對象。

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

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

高階函數(shù)

高階函數(shù)是對其他函數(shù)進(jìn)行操作的函數(shù),可以將它們作為參數(shù)或通過返回它們。簡單來說,高階函數(shù)是一個(gè)函數(shù),它接收函數(shù)作為參數(shù)或?qū)⒑瘮?shù)作為輸出返回。

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

運(yùn)行高階函數(shù)

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

Array.prototype.map

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

傳遞給回調(diào)函數(shù)map()方法接受3個(gè)參數(shù):element,index,和array。

假設(shè)我們有一個(gè)數(shù)組,我們想要?jiǎng)?chuàng)建一個(gè)新數(shù)組,其中包含第一個(gè)數(shù)組的每個(gè)值的兩倍。讓我們看看如何使用和不使用高階函數(shù)來解決問題。

不用高階函數(shù)

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);

使用高階函數(shù)

const arr1 = [1,2,3];const arr2 = arr1.map (function (item) {  return item * 2; }console.log(arr2)            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 宝应县| 广丰县| 巨鹿县| 固始县| 依安县| 嘉祥县| 荥经县| 临潭县| 孝昌县| 南川市| 伊川县| 赣州市| 珲春市| 阜宁县| 宿松县| 岑巩县| 青海省| 太保市| 郓城县| 祥云县| 芦山县| 红原县| 固镇县| 沙坪坝区| 吉木乃县| 阜城县| 阿城市| 延津县| 名山县| 邮箱| 莎车县| 丁青县| 象山县| 探索| 米泉市| 曲周县| 彩票| 同心县| 临城县| 赤峰市| 东乌|