亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網站管理員

告別“if-else”條件判斷:5 個讓 JavaScript 邏輯更優(yōu)雅的寫法

liguoquan
2025年7月29日 17:51 本文熱度 120
:告別“if-else”條件判斷:5 個讓 JavaScript 邏輯更優(yōu)雅的寫法


告別“if-else”條件判斷:5 個讓 JavaScript 邏輯更優(yōu)雅的寫法

?在 JavaScript 的世界里,if-else 就像一把瑞士軍刀:簡單、萬能、隨處可見。但業(yè)務一旦膨脹,層層嵌套的判斷語句就會像一團亂麻,剪不斷、理還亂。好消息是,這門靈活的語言給我們提供了不少“換刀”方案——既保留語義,又讓代碼看上去像精心排版的文章,而不是繞口令。

下面分享 5 種“無痛替代”思路,配合代碼示例,幫你把“面條狀”條件判斷梳理成“魚骨圖”。


1. 一行解決戰(zhàn)斗:三元運算

當邏輯只有兩個結果,并且只是為了給變量賦值時,三元運算符就是濃縮咖啡版 if-else。

老寫法:

let tip; if (isVip) {  tip = 0.2; } else {  tip = 0.1; }

新寫法:

const tip = isVip ? 0.2 : 0.1;

一行寫完,讀代碼的人再也不用上下翻屏找 else 藏在哪兒。


2. 字典式查找:用對象/Map 做“翻譯表”

當條件多、但每個條件只對應一個固定返回值時,把“判斷”變成“查字典”,既直觀又易擴展。

老寫法:

function getIcon(type) {  if (type === 'pdf') return '??';  if (type === 'img') return '???';  if (type === 'zip') return '???';  return '?'; }

新寫法:

const iconMap = {  pdf: '??',  img: '???',  zip: '???', }; const getIcon = type => iconMap[type] ?? '?';

新增類型?直接往 iconMap 里添一行鍵值對即可,告別“再寫三行 else if”。


3. 函數(shù)版策略模式:把“條件”拆成“策略”

如果每個分支里不是返回值,而是一整段動作邏輯,不妨把動作封裝成函數(shù),再按條件調度——這就是輕量級策略模式。

老寫法:

function handle(code) {  if (code === 200) renderDashboard();  else if (code === 401) redirectToLogin();  else if (code === 403) showForbidden();  else showError(); }

新寫法:

const strategies = {  200: renderDashboard,  401: redirectToLogin,  403: showForbidden,  default: showError, }; const handle = code => (strategies[code] || strategies.default)();

函數(shù)即策略,職責單一,單元測試也方便。


4. 短路運算符:讓條件“隱形”

只想在特定條件下觸發(fā)某個副作用,或者給變量兜底一個默認值?&&、||?? 三個符號就能搞定。

  • “滿足就執(zhí)行”
    老寫法:

    if (debug) console.table(data);

    新寫法:

    debug && console.table(data);
  • “兜底默認值”
    老寫法:

    let name; if (inputName) name = inputName; else name = '游客';

    新寫法(區(qū)分假值與 null/undefined):

    const name = inputName ?? '游客';   // 僅 null/undefined 兜底 // 或 const name2 = inputName || '游客';  // 任何假值都兜底

5. 規(guī)則數(shù)組:把“階梯”變“流水線”

當判斷涉及區(qū)間、權重或更復雜的表達式時,把規(guī)則抽象成數(shù)組,再讓程序按順序匹配第一條命中的規(guī)則——聲明式寫法優(yōu)雅又易擴展。

老寫法:

function shippingFee(weight) {  if (weight <= 1) return 5;  else if (weight <= 5) return 10;  else if (weight <= 10) return 15;  else return 20; }

新寫法:

const feeRules = [  { test: w => w <= 1,  fee: 5  },  { test: w => w <= 5,  fee: 10 },  { test: w => w <= 10, fee: 15 },  { test: () => true,   fee: 20 }, // 兜底 ]; const shippingFee = weight => feeRules.find(r => r.test(weight)).fee;

新增一個區(qū)間?往數(shù)組頭部插入一條規(guī)則即可,無需改動任何判斷邏輯。


小結

場景推薦方案
二元賦值三元運算符
多值映射對象/Map
多動作分支函數(shù)映射(策略)
條件副作用 / 默認值短路運算
區(qū)間/權重判斷規(guī)則數(shù)組

if-else 本身無罪,但當它開始“橫向生長”時,就該考慮換一種更貼合場景的表達方式。選擇合適的工具,讓代碼自己“說話”,未來的你會感謝今天多敲的這一行重構。


該文章在 2025/7/29 17:51:08 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結合碼頭的業(yè)務特點,圍繞調度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統(tǒng),標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved