if-else vs. switch(true)

Benchmark created on


Setup

const user = {
	firstName: "Seán",
	lastName: "Barry",
	email: "my.address@email.com",
	number: "00447123456789",
};

function test1(user) {
	if (!user) {
	throw new Error("User must be defined.");
}

if (!user.firstName) {
	throw new Error("User's first name must be defined");
}

if (typeof user.firstName !== "string") {
	throw new Error("User's first name must be a string");
}

// ...lots more validation here

return user;
}

function test2(user) {
	switch (true) {
	case !user:
		throw new Error("User must be defined.");
	case !user.firstName:
		throw new Error("User's first name must be defined");
	case typeof user.firstName !== "string":
		throw new Error("User's first name must be a string");
	// ...lots more validation here
	default:
		return user;
}
}

Test runner

Ready to run.

Testing in
TestOps/sec
if-else
test1(user);
ready
switch(true)
test2(user);
ready

Revisions

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