首頁 web前端 js教程 使用命令物件取代switch語句的寫法範例_javascript技巧

使用命令物件取代switch語句的寫法範例_javascript技巧

May 16, 2016 pm 04:12 PM
switch語句 代替

曾經有人說過,真正好的程式是沒有if..else的,當然switch還不如if..else。 JS規範裡面是禁止使用switch的。

命令物件(command object)就完美的解決了這個問題。

引用一篇國外的部落格提到的:

JavaScript 有著良好的控制流程語句,這些語句往往用花括號包裹著。不過有個例外:switch … case 語句。 switch … case 的奇怪之處在於你必須在每個 case 結尾加上關鍵字 break,以防止流程控制權穿越進入下一個 case 語句中。穿越是指讓多個 case 執行的手法,當未遇見預期的 break 時,控制權就會自動交給下一句 case 手中。然而,就如同分號與花括號一樣,你很有可能會在不經意之間忘了寫 break,當這發生時,後期的錯誤排查就比較痛苦,因為語句本身是沒錯的。因此,配對地寫 case … break 是個好習慣。
我們通常講,JavaScript 有著優雅的物件字面量與頂層函數,這些都使得特定的方法查詢變的非常簡單。為方法查詢所建立的對象,我們稱之為 活動對象(action object) 或 命令對象(command object),它被運用在許多軟體設計模式中,包括強大的而有用的命令模式。

實例:

複製程式碼 程式碼如下:

// switch 方法
    function testSwitch(name) {
        switch (name) {
            case '1':
                return 'hack';
                break;
            case '2':
                return 'slash';
                break;
            case '3':
                return 'run';
                break;
            default:
                return 稱為;
                break;
        }
    }
    // 使用指令物件
    function testFn(name) {
        var names = {
            '1': function() {
                return 'hack';
            },
            '2': function() {
                return 'slash';
            },
            '3': function() {
                return 'run';
            }
        };
        if (typeof names[name] !== 'function') {
            return false;
        }
        return names[name]();
    }
    // 測試結果
    var result1 = testSwitch('1');
    var result2 = testFn('2');
    console.info(result1, result2);
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1422
52
Laravel 教程
1316
25
PHP教程
1267
29
C# 教程
1239
24
PHP中的條件控制結構 PHP中的條件控制結構 Mar 10, 2024 pm 09:36 PM

PHP中的條件控制結構在PHP程式設計中,條件控制結構是一種非常重要的語法,它可以讓程式根據不同的條件來執行不同的程式碼區塊。透過使用條件控制結構,我們可以實現程式的分支邏輯,根據條件的結果來決定程式的執行路徑。本文將介紹PHP中常用的條件控制結構,包括if語句、else語句、elseif語句和switch語句,並給出具體的程式碼範例。 if語句是PHP中最基本的條件控

wifi7可以代替有線 wifi7可以代替有線 Dec 28, 2023 pm 07:44 PM

很多用戶都非常的關注WiFi的發展,當WiFi7出來以後很多用戶都開始猜測WiFi7是否可以取代有線網絡,當然如果WiFi可以高速穩定地傳輸,那麼取代有線網絡也是正常的wifi7可以代替有線答:有望替代,但到底如何還要看正式投入使用的情況。 WiFi7要比上一代的WiFi6快出2倍左右,同時延遲還減了近半。如果真的可以有非常高速穩定的傳輸速度,那麼替代有線也是很正常的。 WiFi7介紹1、Wi-Fi7則比Wi-Fi6更快,業界將其定義為“802.11beEHT”,也就是極高吞吐量2、Wi-Fi7可以

Go 語言基礎 - switch語句 Go 語言基礎 - switch語句 Jul 24, 2023 pm 03:50 PM

switch是一個條件語句,用來計算條件表達式的值,判斷該值是否滿足case語句,如果符合則會執行對應的程式碼區塊。是用來取代複雜if-else語句的常用方式。

switch語句 switch語句 Aug 11, 2023 am 10:54 AM

Switch語句是一種在程式設計中常用的控制結構,允許程式根據不同的條件值來執行不同的程式碼區塊,可以取代多個if-else語句,提高程式碼的可讀性和可維護性。雖然它有一些限制,但在適當的情況下,使用Switch語句可以使程式更加簡潔和有效率。

Java 枚舉類型如何與 switch 語句配合使用? Java 枚舉類型如何與 switch 語句配合使用? Apr 30, 2024 pm 06:48 PM

枚舉型別是Java中定義常數集合的資料型別。配合switch語句,可實現以下功能:清楚表示值範圍:枚舉類型用於定義一組不可變的常數值,並提高程式碼可讀性。符合不同枚舉常數:switch語句允許根據枚舉常數執行不同的操作,以實現精細化的控制。處理不同場景:透過枚舉類型和switch語句,可以在實際場景中靈活處理各種情況,例如不同的通知類型發送不同郵件內容。

switch語句怎麼用 switch語句怎麼用 Sep 21, 2023 pm 05:48 PM

switch語句用法:1、Switch語句只能用於整數類型,枚舉類型和String類型,不能用於浮點數類型和布林類型;2、每個case語句後面必須跟著一個break語句,以防止執行其他case的程式碼區塊,沒有break語句,將會繼續執行下一個case的程式碼區塊;3、可以在一個case語句中匹配多個值,使用逗號分隔;4、Switch語句中的default程式碼區塊是可選的等等。

Go 語言中的 switch 語句是怎麼使用的? Go 語言中的 switch 語句是怎麼使用的? Jun 11, 2023 am 09:11 AM

Go語言是一種新興的程式語言,它具有高效、簡潔、安全和並發等特點,非常適合用於Web開發、分散式系統和雲端運算等領域。在Go語言中,switch語句是一種非常常用的語言結構,它可以根據表達式的值,選擇不同的分支來執行。本文將介紹Go語言中switch語句的基本使用方法與注意事項。基本語法Go語言中的switch語句與其他程式語言中的

Java 10中的局部變數類型推斷:如何在switch語句中使用final var關鍵字 Java 10中的局部變數類型推斷:如何在switch語句中使用final var關鍵字 Jul 31, 2023 pm 12:31 PM

Java10中的局部變數類型推斷:如何在switch語句中使用finalvar關鍵字隨著Java語言的不斷發展,每個新版本都會引入一些新的功能和改進。在Java10中,其中一個重要的新特性是局部變數類型推論。這個特性使得開發人員可以使用var關鍵字來取代明確的類型聲明,從而使程式碼更加精簡和易讀。本文將探討如何在switch語句中使用finalvar關

See all articles