成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

JavaScript如何優化邏輯判斷代碼詳解

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

我們日常使用到的邏輯判斷語句有 if...else...、switch...case...、do...while...等。

在簡單場景下,我們可能對這些語法的性能沒有什么感覺,但當遇到復雜的業務場景時,如果處理不善,就會出現大量的邏輯嵌套,可讀性差并且難以擴展。

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

嵌套層級優化

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

通過上面這個例子,我們可以看到:判斷流程中規中矩,符合現實世界的映射。但是,因代碼層層嵌套,導致閱讀和維護都存在困難。

如果傳入了 fruit 參數,則每次執行都至少需要經過兩步 if 判斷,在性能上也存在問題。

我們來對上面的代碼進行一下優化處理:

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

這里主要對嵌套層級做了優化,提前終止掉了不符合的條件,將三層嵌套減少到了一層,簡化了代碼結果結構,增強了可閱讀性。

多條件分支的優化

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

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

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

我們使用 switch...case...進行一下改寫:

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

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

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

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

使用 Map 數據結構,真正的(key, value) 鍵值對結構:

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

優化之后,代碼更簡潔、更容易擴展。

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

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);}總結

上面使用的例子和手段都比較初級,但是其中的思想卻值得我們細品,希望大家能夠有所收獲!

到此這篇關于JavaScript如何優化邏輯判斷代碼的文章就介紹到這了,更多相關JavaScript優化邏輯判斷代碼內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: JavaScript
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲综合精品自拍| 欧美午夜电影一区| 91精品国产入口| 卡一卡二国产精品 | 亚洲欧洲色图综合| 99国产精品久久久| 精品国产乱码久久久久久浪潮| 国产丶欧美丶日本不卡视频| 欧美日韩一区二区在线观看视频| 免费精品视频最新在线| 色呦呦一区二区三区| 综合在线观看色| 亚洲久久一区二区| 一区二区三区在线免费播放| 在线综合亚洲| 一个色在线综合| 香蕉久久夜色精品国产| 日韩—二三区免费观看av| 色婷婷狠狠综合| 美日韩一级片在线观看| 欧美丝袜第三区| 国产一区二区三区日韩| 欧美一区二区三区四区五区| 国产一区二区精品在线观看| 69p69国产精品| 高清在线观看日韩| 欧美xfplay| 99精品1区2区| 国产日韩影视精品| 亚洲图片在线| 亚洲乱码国产乱码精品精的特点| 国产欧美日韩亚洲一区二区三区| 亚洲一区二区三区视频在线| 久久先锋资源| 久久精品国产亚洲高清剧情介绍| 欧美老人xxxx18| 成人午夜激情视频| 国产午夜精品一区二区三区嫩草| 韩国亚洲精品| 亚洲成人福利片| 色又黄又爽网站www久久| 麻豆91精品91久久久的内涵| 欧美疯狂做受xxxx富婆| 丰满岳乱妇一区二区三区| 国产亚洲1区2区3区| 激情国产一区| 午夜精品免费在线| 欧美揉bbbbb揉bbbbb| 国产91对白在线观看九色| 欧美国产亚洲另类动漫| 99国产精品久久久久久久| 亚洲电影视频在线| 7777精品久久久大香线蕉| 欧美激情日韩| 亚洲自拍偷拍欧美| 欧美性xxxxxxxx| 成人永久免费视频| 国产精品女主播av| 久久综合给合久久狠狠色| 韩日av一区二区| 国产日韩精品视频一区| 国产亚洲激情| 久久精品国产**网站演员| 久久免费看少妇高潮| 亚洲精品字幕| 裸体在线国模精品偷拍| 欧美精品一区二区精品网| 亚洲国产一区二区在线| 青青国产91久久久久久| 欧美成人国产一区二区| 亚洲精品久久| 蜜臀av性久久久久蜜臀av麻豆 | 国产精品亚洲一区| 激情综合色综合久久| 欧美激情一区二区在线| 亚洲一区国产| 大白屁股一区二区视频| 亚洲精品免费在线| 制服视频三区第一页精品| 韩国在线视频一区| 裸体一区二区三区| 久久精品欧美日韩精品| 久久久久久一区| 丰满亚洲少妇av| 亚洲精选视频免费看| 欧美日韩精品电影| 红杏aⅴ成人免费视频| 免费成人美女在线观看.| 国产亚洲欧洲997久久综合| 久久国产毛片| 不卡的电视剧免费网站有什么| 亚洲综合色在线| 日韩欧美自拍偷拍| 国产亚洲综合精品| 成人丝袜18视频在线观看| 亚洲日本va午夜在线电影| 5566中文字幕一区二区电影| 在线精品一区| 国产精品资源在线看| 一区二区三区视频在线看| 日韩精品一区二区三区四区视频| 国产一区二区三区成人欧美日韩在线观看 | 一本大道av一区二区在线播放| 成人av影视在线观看| 亚洲午夜在线视频| 精品av综合导航| 久久野战av| 欧美成人亚洲| 奇米综合一区二区三区精品视频 | 国产精品影视在线| 亚洲免费高清视频在线| 日韩午夜在线观看| 久久久www| 欧美一区二区视频在线| 六月丁香婷婷久久| 亚洲精品日日夜夜| 精品国偷自产国产一区| 蜜桃av综合| 国语精品中文字幕| 国产成人精品1024| 午夜国产精品一区| 中文字幕巨乱亚洲| 日韩欧美激情一区| 欧美中文字幕一二三区视频| 亚洲精品黄色| 欧美成人dvd在线视频| 国产一区二区三区免费看| 亚洲制服丝袜一区| 国产欧美精品一区aⅴ影院 | 久久综合九色综合欧美狠狠| 国产精品国产三级欧美二区| 国产91精品露脸国语对白| 久久精品久久综合| 亚洲成人动漫在线观看| 中文字幕一区免费在线观看| 精品福利视频一区二区三区| 欧美日韩国产bt| 色诱视频网站一区| 国产午夜精品一区二区三区欧美| 午夜精品视频在线观看一区二区| 国产 欧美在线| 精品一区二区久久久| 五月天国产精品| 亚洲欧美色图小说| 国产精品素人一区二区| 精品99久久久久久| 欧美一区二区三区系列电影| 欧美亚洲国产一区在线观看网站| 香港久久久电影| 伊人久久久大香线蕉综合直播| 成人高清视频在线观看| 国精产品一区一区三区mba视频| 五月天激情综合网| 亚洲伦理在线精品| 中文字幕av不卡| 久久综合久久综合久久| 91精品国产麻豆国产自产在线 | 国产精品一级片在线观看| 五月天丁香久久| 一区二区三区高清不卡| 亚洲婷婷在线视频| 国产欧美一区在线| 久久免费精品国产久精品久久久久| 日韩三级在线观看| 日韩视频永久免费| 日韩一区二区精品葵司在线 | 一本大道久久a久久精二百| 国产欧美另类| 在线亚洲伦理| 一区二区国产精品| 日韩图片一区| 夜久久久久久| 国产美女诱惑一区二区| 国产亚洲精品v| 亚洲精品一级| 国产精品嫩草99av在线| 一区二区三区欧美在线| 99综合在线| 午夜在线一区| 一本一道综合狠狠老| 久久亚洲午夜电影| 在线观看不卡一区| 精品视频1区2区3区| 欧美日本乱大交xxxxx| 欧美日韩不卡一区| 欧美日韩国产另类一区| 欧美一区永久视频免费观看| 欧美一区二区三区在线| 日韩视频一区二区三区在线播放 | 91蝌蚪porny| 色综合久久中文字幕| 欧美日本一区二区视频在线观看| 91免费看`日韩一区二区| 欧美日本中文| 一本久道久久综合婷婷鲸鱼| 久久综合电影| 在线成人免费视频| 久久亚洲精品小早川怜子| 国产三级精品三级| 最新国产の精品合集bt伙计|