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

曾經有人說過,真正好的程式是沒有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
PHP中的条件控制结构PHP中的条件控制结构Mar 10, 2024 pm 09:36 PM

PHP中的条件控制结构在PHP编程中,条件控制结构是一种非常重要的语法,它可以让程序根据不同的条件来执行不同的代码块。通过使用条件控制结构,我们可以实现程序的分支逻辑,根据条件的结果来决定程序的执行路径。本文将介绍PHP中常用的条件控制结构,包括if语句、else语句、elseif语句和switch语句,并给出具体的代码示例。if语句是PHP中最基本的条件控

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语句可以使程序更加简洁和高效。

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 语句是怎样使用的?Jun 11, 2023 am 09:11 AM

Go语言是一种新兴的编程语言,它具有高效、简洁、安全和并发等特点,非常适合用于Web开发、分布式系统和云计算等领域。在Go语言中,switch语句是一种非常常用的语言结构,它可以根据表达式的值,选择不同的分支进行执行。本文将介绍Go语言中switch语句的基本使用方法和注意事项。基本语法Go语言中的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代码块是可选的等等。

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关

Golang函数的switch语句应用技巧Golang函数的switch语句应用技巧May 16, 2023 am 08:26 AM

随着Golang在近年来的持续快速发展,它已经成为了许多开发者的首选编程语言之一。在Golang的诸多语法结构中,switch语句无疑是一个非常重要的部分。然而,很多开发者可能只是会使用最简单的switch语句,而对于switch语句的进一步应用技巧却不是很了解。本文就来介绍一些Golang函数中switch语句的常见应用技巧,以期帮助读者更好地理解和应用s

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具