首页 > 解决方案 > 在 javascript 中使用 switch 语句性能运行函数

问题描述

我有一个代码可以用随机数生成数学问题。我正在使用 switch 语句来选择应该生成哪个任务。

function genTask(taskid) {
    switch (taskid) {
        case 1:
        // generate some numbers
        return numbers;
        break;
        case 2:
        // generate some numbers
        return numbers;
        break;
        // ...
    }
}

我认为当我添加 150 多个案例时可能会出现一些性能问题。此代码是否适用于每种情况?如果每个任务都有单独的功能,会不会更快?

function task1() {
    // generate some numbers
    return numbers;
}
function task2() {
    // ...
}

function genTask(taskid) {
    switch (taskid) {
        case 1:
        return task1();
        break;
        case 2:
        return task2();
        break;
        // ...
    }
}

有没有更快的方法来做到这一点?

标签: javascriptperformanceswitch-statement

解决方案


总的来说,我认为“array”的性能优于“if/else”或“switch”。请参阅下面的参考。在您的特定情况下,如果您将 if/else 与 switch 进行比较,那么 switch 会更好。

使用函数不会影响性能(我认为),但它更好,更可取,因为代码会更干净和可读。

参考:https ://www.oreilly.com/library/view/high-performance-javascript/9781449382308/ch04.html


推荐阅读