strict parseInt vs strict toString vs loose equality

Benchmark created on


Setup

const size = 100_000;

function getRandomNumberList(asString) {
	const list = new Array(size);
	for (let i = 0; i < size; i++) {
		list[i] = Math.round(Math.random() * 1_000_000_000);
	}
	return list;
}

const numberList = getRandomNumberList(false);
const stringList = getRandomNumberList(true);
let matches = 0;

Test runner

Ready to run.

Testing in
TestOps/sec
toString
for (let i = 0; i < size; i++) {
	if (numberList[i].toString() === stringList[i]) {
		matches++;
	}
}
ready
parseInt
for (let i = 0; i < size; i++) {
	if (numberList[i] === parseInt(stringList[i])) {
		matches++;
	}
}
ready
loose equal
for (let i = 0; i < size; i++) {
	if (numberList[i] == stringList[i]) {
		matches++;
	}
}
ready

Revisions

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