switch vs if-elseif vs early return

Benchmark created on


Setup

function function1(x) {
    switch (x) {
        case 1:
            return 111;
            break;
        case 2:
            return 222;
            break;
        default:
            return -1;
    }
}

function function2(x) {
    if (x == 1) return 111;
    if (x == 2) return 222;
    return -1;
}

function function3(x) {
    let out = -1;
    switch (x) {
        case 1:
            out = 111;
            break;
        case 2:
            out = 222;
            break;
    }
    return out;
}

function function4(x) {
    let out = -1;
    if (x == 1) {
        out = 111;
    } else if (x == 2) {
        out = 222;
    }
    return out;
}


var tests = [...Array(100)].map((e,i) => i % 3)

Test runner

Ready to run.

Testing in
TestOps/sec
switch-return
tests.map(function1)
ready
if-return
tests.map(function2)
ready
switch-var
tests.map(function3)
ready
if-var
tests.map(function4)
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.