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

您的位置:首頁技術(shù)文章
文章詳情頁

JavaScript如何優(yōu)化邏輯判斷代碼詳解

瀏覽:35日期:2023-06-02 18:42:33
前言

我們?nèi)粘J褂玫降倪壿嬇袛嗾Z句有 if...else...、switch...case...、do...while...等。

在簡單場景下,我們可能對這些語法的性能沒有什么感覺,但當(dāng)遇到復(fù)雜的業(yè)務(wù)場景時(shí),如果處理不善,就會出現(xiàn)大量的邏輯嵌套,可讀性差并且難以擴(kuò)展。

千里之行始于足下,編寫高可維護(hù)性和高質(zhì)量的代碼,我們就需要從細(xì)節(jié)處入手,我們今天主要討論 JavaScript 中如何優(yōu)化邏輯判斷代碼。

嵌套層級優(yōu)化

function supply(fruit, quantity) { const redFruits = [’apple’, ’strawberry’, ’cherry’, ’cranberries’]; // 條件 1: 水果存在 if (fruit) {// 條件 2: 屬于紅色水果if (redFruits.includes(fruit)) { console.log(’紅色水果’); // 條件 3: 水果數(shù)量大于 10 個(gè) if (quantity > 10) {console.log(’數(shù)量大于 10 個(gè)’); }} } else {throw new Error(’沒有水果啦!’); }}

通過上面這個(gè)例子,我們可以看到:判斷流程中規(guī)中矩,符合現(xiàn)實(shí)世界的映射。但是,因代碼層層嵌套,導(dǎo)致閱讀和維護(hù)都存在困難。

如果傳入了 fruit 參數(shù),則每次執(zhí)行都至少需要經(jīng)過兩步 if 判斷,在性能上也存在問題。

我們來對上面的代碼進(jìn)行一下優(yōu)化處理:

function supply(fruit, quantity) { const redFruits = [’apple’, ’strawberry’, ’cherry’, ’cranberries’]; if (!fruit) throw new Error(’沒有水果啦’); // 條件 1: 當(dāng) fruit 無效時(shí),提前處理錯(cuò)誤 if (!redFruits.includes(fruit)) return; // 條件 2: 當(dāng)不是紅色水果時(shí),提前 return console.log(’紅色水果’); // 條件 3: 水果數(shù)量大于 10 個(gè) if (quantity > 10) {console.log(’數(shù)量大于 10 個(gè)’); }}

這里主要對嵌套層級做了優(yōu)化,提前終止掉了不符合的條件,將三層嵌套減少到了一層,簡化了代碼結(jié)果結(jié)構(gòu),增強(qiáng)了可閱讀性。

多條件分支的優(yōu)化

相信我們很多人對下面這種代碼不陌生吧?(想想剛開始寫代碼那會啊)

function pick(color) { // 根據(jù)顏色選擇水果 if (color === ’red’) {return [’apple’, ’strawberry’]; } else if (color === ’yellow’) {return [’banana’, ’pineapple’]; } else if (color === ’purple’) {return [’grape’, ’plum’]; } else {return []; }}

我們需要知道一點(diǎn)原則:if else 更適合于條件區(qū)間判斷,而 switch case 更適合于具體枚舉值的分支判斷。

我們使用 switch...case...進(jìn)行一下改寫:

function pick(color) { // 根據(jù)顏色選擇水果 switch (color) {case ’red’: return [’apple’, ’strawberry’];case ’yellow’: return [’banana’, ’pineapple’];case ’purple’: return [’grape’, ’plum’];default: return []; }}

switch...case... 優(yōu)化之后的代碼看上去格式整齊,思路很清晰,但還是很冗長。繼續(xù)優(yōu)化:

借助 Object 的 {key: value} 結(jié)構(gòu),我們可以在 Object 中枚舉所有的情況,然后將 key 作為索引,直接通過 Object.key 或者 Object[key] 來獲取內(nèi)容:

const fruitColor = { red: [’apple’, ’strawberry’], yellow: [’banana’, ’pineapple’], purple: [’grape’, ’plum’],}function pick(color) { return fruitColor[color] || [];}

使用 Map 數(shù)據(jù)結(jié)構(gòu),真正的(key, value) 鍵值對結(jié)構(gòu):

const fruitColor = new Map() .set(’red’, [’apple’, ’strawberry’]) .set(’yellow’, [’banana’, ’pineapple’]) .set(’purple’, [’grape’, ’plum’]);function pick(color) { return fruitColor.get(color) || [];}

優(yōu)化之后,代碼更簡潔、更容易擴(kuò)展。

為了更好的可讀性,還可以通過更加語義化的方式定義對象,然后使用 Array.filter 達(dá)到同樣的效果:

const fruits = [ {name: ’apple’, color: ’red’}, {name: ’strawberry’, color: ’red’}, {name: ’banana’, color: ’yellow’}, {name: ’pineapple’, color: ’yellow’}, {name: ’grape’, color: ’purple’}, {name: ’plum’, color: ’purple’}];function pick(color) { return fruits.filter(f => f.color == color);}總結(jié)

上面使用的例子和手段都比較初級,但是其中的思想?yún)s值得我們細(xì)品,希望大家能夠有所收獲!

到此這篇關(guān)于JavaScript如何優(yōu)化邏輯判斷代碼的文章就介紹到這了,更多相關(guān)JavaScript優(yōu)化邏輯判斷代碼內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: JavaScript
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
91精品91| 美女网站久久| 欧美日韩视频免费看| 久久精品色播| 久久精品99国产精品| 欧美一区免费| 久久国产尿小便嘘嘘| 国产免费播放一区二区| 国产精品白丝一区二区三区| 国产亚洲字幕| 麻豆高清免费国产一区| 欧美午夜不卡影院在线观看完整版免费| 亚洲女同一区| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲日本国产| 日韩国产精品久久久久久亚洲| 欧美精品观看| 国产精品a级| 福利一区二区三区视频在线观看| 高清在线一区| 亚洲午夜黄色| 在线国产精品一区| 日韩精品久久久久久| 国产精品一区亚洲| 高清在线一区| 欧美特黄视频| 欧美一级一区| 在线看片国产福利你懂的| 色婷婷精品视频| 午夜在线播放视频欧美| 欧美日韩一区二区三区四区在线观看| 久久精品国产成人一区二区三区| 中文字幕亚洲影视| 国产情侣一区在线| 国产亚洲一区二区三区不卡| 国产极品一区| 青青久久av| 亚洲三级在线| 成人在线视频免费看| av不卡在线| 国产精品porn| 亚洲精品1区| 国产日韩1区| 日韩欧美精品一区| 玖玖玖国产精品| 国语对白精品一区二区| 亚洲欧美一区在线| 欧美亚洲福利| 久久精品免费一区二区三区| 日本大胆欧美人术艺术动态| 精品三级av| 亚洲欧美高清| 四虎成人av| 中文字幕日韩高清在线| 国产第一亚洲| 免费人成精品欧美精品| 久久三级毛片| 蜜桃视频第一区免费观看| 精品国产一区二区三区噜噜噜| 午夜国产精品视频| 美女视频黄久久| 国产亚洲一级| 欧美日韩国产一区二区在线观看| 久久三级中文| 成人羞羞在线观看网站| 日韩视频1区| 久久精品免费一区二区三区 | 国产亚洲精aa在线看 | 最近高清中文在线字幕在线观看1| 久久午夜影视| 一区二区三区四区日本视频| 日本视频一区二区| 欧美午夜不卡| 国产白浆在线免费观看| 日韩精品一区二区三区中文 | 免费成人网www| 国产精品地址| 午夜宅男久久久| 国产一二在线播放| 日韩高清一区| 一区视频在线| 亚洲综合电影| 久久99国产精品视频| 视频在线观看国产精品| 欧美日韩精品免费观看视欧美高清免费大片 | 国产夫妻在线| 97久久中文字幕| 亚洲天堂久久| av资源亚洲| 久久免费精品| 国产精品视频3p| 亚洲精品免费观看| 99视频在线精品国自产拍免费观看| 福利一区在线| 久久天堂影院| 国产精品久久| 亚洲精品乱码| 国产精品免费看| 伊人久久大香线蕉av不卡| 久久精品人人| 麻豆久久久久久久| 欧美亚洲综合视频| 日韩视频一二区| 视频一区日韩精品| 日本大胆欧美人术艺术动态| 中文在线不卡| av亚洲在线观看| 久久久久久久久丰满| 电影91久久久| 久久精品国产亚洲一区二区三区| 国产精品免费不| 日韩 欧美一区二区三区| 亚洲精品伦理| 亚洲精品影院在线观看| 美女国产一区| 中文字幕一区二区精品区| 视频一区欧美精品| 视频精品一区二区| 亚洲影视一区| 日韩综合一区二区三区| 婷婷综合成人| 欧美一区影院| 国产亚洲高清一区| 国产日韩免费| 麻豆一区二区在线| 黄色网一区二区| 免费亚洲婷婷| 久久精品理论片| 午夜久久中文| 999久久久免费精品国产| 99精品综合| 欧美美女一区| 亚洲免费影院| 日韩免费精品| 国产精品久久久久久妇女| 精品国产中文字幕第一页| 精品一区二区三区视频在线播放 | 精品视频国内| 日韩在线欧美| 视频福利一区| 国产亚洲激情| 日本久久二区| 麻豆精品av| 欧洲精品一区二区三区| 欧美成人亚洲| 亚洲精选成人| 麻豆国产精品视频| 亚洲日本网址| 中文一区一区三区免费在线观| 国语精品一区| 蜜桃视频在线观看一区二区| 中文一区一区三区免费在线观 | 午夜久久久久| 一区二区三区四区日韩| 日韩精品视频在线看| 国产精品欧美大片| 国产精品99久久精品| 国产精品视频一区二区三区四蜜臂| 成人在线丰满少妇av| 欧美.日韩.国产.一区.二区| 美国三级日本三级久久99| 日韩精品91| 亚洲一区二区小说| 蜜桃精品视频| 三上悠亚国产精品一区二区三区| 九九综合在线| 日韩一区二区三区高清在线观看 | 播放一区二区| 麻豆亚洲精品| 欧美精品导航| 亚洲调教视频在线观看| 日韩在线黄色| 国产夫妻在线| 亚洲专区视频| 国产精品色婷婷在线观看| 色一区二区三区| 亚洲人亚洲人色久| 精品美女在线视频| 成人av二区| 国产精品综合色区在线观看| 亚洲精品.com| 奇米狠狠一区二区三区| 日韩和的一区二在线| 日韩和欧美的一区| 欧美日韩在线观看视频小说| 欧美亚洲综合视频| 999国产精品视频| 国产情侣一区| 亚洲欧美视频| 精品久久99| 久久97视频| 日韩在线一区二区| 欧美日韩国产v| 欧美亚洲自偷自偷| 国产综合视频| 美日韩一区二区三区| 首页亚洲欧美制服丝腿| 中文在线资源| 欧美日韩一区二区三区四区在线观看| 精品欧美激情在线观看|