日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

JavaScript代碼簡化技巧實例解析

瀏覽:159日期:2023-10-14 14:45:36

函數式編程可以使您的代碼更簡單。簡單意味著代碼易于閱讀和理解,可測試和可維護。

在本文中,我描述了一些函數式編程(FP)技巧,您可以使用它們來簡化代碼,從而使代碼更好。

擺脫臨時變量和不變性原則

函數式編程傾向于不變性,這種不變性原則意味著在初始化變量之后不會更改它們的值。同樣,創建對象或字符串后,您也無需對其進行突變。

如果使用JavaScript編程,則所有變量定義都應使用 const。對于正在閱讀您的代碼的任何人,常量定義都可以讓您高枕無憂:它保證永遠不會重新分配變量,因為重新分配是不可能的,所以讀者的大腦從跟蹤和識別代碼中重新分配的負擔中解脫出來。

何時需要更改值呢?首先,您可以擁有一個數組:

const fruits = [’apple’, ’orange’, ’banana’]

要將新水果添加到此列表中,該怎么辦?解決方案是用新的或更新的值初始化一個新的常量變量,我們可以使用點擴展符復制現有的 fruits 值:

const allFruits = [...fruits, ’pineapple’]

您應該在代碼的任何地方都遵循不變性原則,因為如果這樣做,您的代碼將變得更干凈。

您知道 fruits 變量的值永遠不會改變,并且您第一次看到變量的聲明時就知道這一事實,初始化后,在任何可見的 fruits 變量處,您都知道。

擺脫循環

考慮以下循環:

var list = [];var i = 0;while (i < rows.length) { var row = rows[i]; var message = { childAddress: row[1], action: ’switchToBackupNode2’, role: ’edge’ }; list.push(message); i += 1;}

函數編程方法去掉了while循環,并使用map將行處理為一個列表。

const list = rows.map(r => ({ childAddress: r[1], action: ’switchToBackupNode2’, role: ’edge’ }))

除了擺脫循環之外,這段代碼還刪除了臨時變量 row 和 message 以及循環變量 i。

結果更具可讀性,非常清晰。

為了公平起見,要獲得此信任級別,您需要首先了解map函數。map函數在函數式編程中無處不在,因此學習它是過渡到FP的重要步驟。

map是程序員用于列表處理的函數之一。處理列表中的數據是FP的重要組成部分,您還應該學習其他列表處理功能:最重要的是 reduce 和 filter 函數。

刪除if..else

在我的簡化代碼的實踐中,刪除 if 是一個有用的策略。有幾種策略可以用于從代碼中刪除 if 語句,并且應用其中任何一種通常都會得到更清晰、更容易理解的結構。

讓我們看一下刪除 if 語句的一些策略。

三元運算符

三元運算符是我從變量賦值中去掉 if 語句的主要工具。

考慮以下:

let message;if (person !== null) { message = `hello, ${person}!`} else { message = ’hey there!’}

上面的代碼中有兩個問題:

我必須使用非 const 變量 message,因為對于 if 結構,我無法在變量聲明中立即給 message 賦值。考慮到它只完成了聲明變量和有條件地為變量賦值的簡單任務,代碼相當冗長和復雜。使用三元運算符? 可以在一行中完成相同的工作:

const message = person !== null ? `hello, ${person}!` : ’hey there!’

布爾運算符 && 和 ||

布爾運算符 && 和 || 為 if 語句提供有效的替代方法。

不要這樣做:

if (value) {doStuff(value)} else {doStuff(1)}

改進:

doStuff(value || 1)

這里的邏輯或操作符 || 提供了向函數傳遞默認值的快速方法。每次不知道或不確定變量是否具有值時,都可以使用相同的技巧:使用 || <default> 作為前綴提供默認值。

這是一個如何使用邏輯與運算符 && 的示例。首先,使用 if 的版本:

if (data) {sendData(data.value);}

然后我們使用 && 刪除 if :

data && sendData(data.value)

在這里,我們使用 && 來首先檢查數據變量是否包含值。如果沒有這個檢查,當沒有值時代碼就會崩潰(換句話說,值為 null 或 undefined)。

在這里使用這些運算符時,我們依賴布爾表達式的短路求值。&& 和 || 運算符,當第一部分錯誤時,JavaScript不會計算表達式的后半部分。

Map 和 查找

使用 map 作為查找 list 是替換一系列if語句的有效方法。考慮以下:

let language;if (country === ’FI’) {language = ’Finnish’} else if (country === ’SE’) {language = ’Swedish’} else if (country === ’USA’) { language = ’English (American)’} else if (country === ’UK’) { language = ’English (UK)’} // etc...

更簡潔的方法是使用國家/語言對的Map。

const languages = new Map([ [’FI’, ’Finnish’], [’SE’, ’Swedish’], [’USA’, ’English (American)’], [’UK’, ’English (UK)’],])const language = languages.get(’SE’)console.log(language) // Swedish

第二種實現要簡單得多。該代碼立即顯示出它的意圖。另外,它將 language 變量轉換為使用 const。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91亚洲一区| 欧美在线综合| 国产精品手机在线播放| 日韩精品电影一区亚洲| 日本91福利区| 国产麻豆精品| 国产精品白浆| 国产欧美一区二区三区精品观看| 国产精品一区二区美女视频免费看| 国产日产高清欧美一区二区三区| 欧美亚洲免费| 国产精品igao视频网网址不卡日韩 | 欧美成a人免费观看久久| 国产成人精品亚洲日本在线观看| 91看片一区| 精品中文字幕一区二区三区av| 久久福利精品| 亚洲精品护士| 欧美激情日韩| 久久久久久美女精品| 性色一区二区| 久久精品99久久久| 超碰在线99| 99日韩精品| 91成人福利| 伊人网在线播放| 午夜在线播放视频欧美| 青青草国产精品亚洲专区无| 国产一区国产二区国产三区| 欧美91精品| 欧美一级一区| 偷拍精品精品一区二区三区| 国产亚洲一级| 国产精品国码视频| 国精品一区二区| 日韩高清三区| 日韩中文欧美| 日韩欧美三区| 日韩电影二区| 中文字幕亚洲影视| 精品网站999| 日韩午夜av| 国产欧美激情| 欧美精品一区二区三区精品| 日韩成人av影视| 日韩精品看片| 欧美一区久久| аⅴ资源天堂资源库在线| 午夜一区在线| 色婷婷色综合| 亚洲+小说+欧美+激情+另类| 高清av一区| 亚洲一区欧美| 六月婷婷综合| 日韩av中文字幕一区二区三区| 福利在线免费视频| 日韩精品免费视频人成| 亚洲人成在线网站| 91成人精品观看| 亚洲国产专区| 麻豆国产欧美一区二区三区 | 老司机精品久久| 精品国产18久久久久久二百| 亚洲一区二区三区免费在线观看| 美女久久久久久| 欧美中文字幕| 日韩久久精品网| 青青草视频一区| 精品91久久久久| 成人在线视频区| 亚洲精品免费观看| 美女av在线免费看| 国产精品av久久久久久麻豆网| 欧美日韩亚洲国产精品| 亚洲激情另类| 成年男女免费视频网站不卡| 欧美午夜三级| 中文字幕日韩高清在线| 亚洲天堂成人| 国产成人1区| 国产精品一区二区免费福利视频 | 激情久久久久久久| 欧美激情网址| 日韩国产欧美一区二区三区| 国内亚洲精品| 国产一区二区精品久| 91亚洲无吗| 亚洲综合福利| 日韩亚洲精品在线| 91av亚洲| 麻豆精品视频在线| 日韩国产欧美视频| 综合激情一区| 另类亚洲自拍| 欧美在线亚洲| 久久影院一区| 99久久亚洲精品蜜臀| 国产拍在线视频| 精品国产网站| 国产精品亚洲二区| 日本免费在线视频不卡一不卡二| 老司机久久99久久精品播放免费| 免费久久久久久久久| 丝袜美腿诱惑一区二区三区| a天堂资源在线| 高清av一区| 国产精品国产一区| 国产精品国码视频| 国产精品久久久久av蜜臀| 欧美日韩亚洲一区| 青草国产精品久久久久久| 亚欧洲精品视频在线观看| 三级一区在线视频先锋| 亚洲综合另类| 亚洲免费精品| 亚洲免费成人| 蜜臀av亚洲一区中文字幕| 欧美综合二区| 亚洲精品福利| 日韩精品久久久久久久软件91| 亚洲精品女人| 日韩不卡在线观看日韩不卡视频| 日本aⅴ免费视频一区二区三区| 日韩专区视频网站| 亚洲精品第一| 国产日韩欧美中文在线| 欧美日韩一视频区二区| 国产日韩欧美中文在线| 国产剧情在线观看一区| 国产亚洲久久| 日韩av在线免费观看不卡| 日韩精品久久理论片| 日本成人中文字幕| 国产日产高清欧美一区二区三区| 国产精品白丝久久av网站| 国产一区二区三区精品在线观看| 岛国av在线播放| 久久精品高清| 亚洲二区精品| 免费看欧美美女黄的网站| 亚洲精品高潮| 久久av日韩| 欧美日韩免费观看视频| 午夜日韩在线| 免播放器亚洲| 亚洲精品麻豆| 精品资源在线| 久久精品伊人| 中文亚洲欧美| 日韩高清三区| 国精品产品一区| 图片区亚洲欧美小说区| 亚洲精品欧美| 国产一区二区三区四区| 国产精品99免费看| 欧美精选一区二区三区| 欧美日韩亚洲一区二区三区在线| 麻豆极品一区二区三区| 蜜桃精品在线| 99pao成人国产永久免费视频 | a国产在线视频| 婷婷激情综合| 奇米777国产一区国产二区| 欧美精品不卡| 99久久夜色精品国产亚洲1000部| 国产亚洲精品久久久久婷婷瑜伽| 日韩精彩视频在线观看| 激情综合婷婷| av不卡在线| 欧美日本久久| 99久久99久久精品国产片果冰| 亚洲精一区二区三区| 精品色999| 99成人在线| 欧美国产视频| 日韩午夜精品| 国产精品色在线网站| 久久狠狠婷婷| 欧美在线91| 激情久久婷婷| 国产精品天堂蜜av在线播放| 不卡中文一二三区| 国产精品午夜av| 亚洲一区成人| 在线人成日本视频| 色婷婷成人网| 日韩欧美一区二区三区免费观看| 日本一区二区中文字幕| 岛国av在线网站| 天堂av一区| 欧美1区免费| 精品一区二区三区中文字幕| 好看的亚洲午夜视频在线| 久久99国产精品视频| 老牛影视一区二区三区| 伊人久久视频| 国产日韩免费| 老鸭窝毛片一区二区三区| 蜜臀久久精品| 国产精品毛片aⅴ一区二区三区|