const vs let vs var

Benchmark created by Nathan Ridley on


Setup

var a = Math.random();
  var b = Math.random();
  var c = Math.random();

Test runner

Ready to run.

Testing in
TestOps/sec
var
var x = a;
var y = b;
var z = c;

for(var i = 0; i < 1000; i++) {
  var k = (a * 13) ^ y;
  if((k & 0b1) === 0b1) {
    y += k;
  }
  else {
    z += k;
  }
}

a ^= (x * 13) ^ y;
b ^= (a * 97) ^ z;
c ^= (b * 5381);
ready
const (unique name)
var x = a;
var y = b;
var z = c;

for(var i = 0; i < 1000; i++) {
  const k = (a * 13) ^ y;
  if((k & 0b1) === 0b1) {
    y += k;
  }
  else {
    z += k;
  }
}

a ^= (x * 13) ^ y;
b ^= (a * 97) ^ z;
c ^= (b * 5381);
ready
const (override name)
var x = a;
var y = b;
var z = c;

for(var i = 0; i < 1000; i++) {
  const x = (a * 13) ^ y;
  if((x & 0b1) === 0b1) {
    y += x;
  }
  else {
    z += x;
  }
}

a ^= (x * 13) ^ y;
b ^= (a * 97) ^ z;
c ^= (b * 5381);
ready
let (unique name)
var x = a;
var y = b;
var z = c;

for(var i = 0; i < 1000; i++) {
  let k = (a * 13) ^ y;
  if((k & 0b1) === 0b1) {
    y += k;
  }
  else {
    z += k;
  }
}

a ^= (x * 13) ^ y;
b ^= (a * 97) ^ z;
c ^= (b * 5381);
ready
let (override name)
var x = a;
var y = b;
var z = c;

for(var i = 0; i < 1000; i++) {
  let x = (a * 13) ^ y;
  if((x & 0b1) === 0b1) {
    y += x;
  }
  else {
    z += x;
  }
}

a ^= (x * 13) ^ y;
b ^= (a * 97) ^ z;
c ^= (b * 5381);
ready

Revisions

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

  • Revision 1: published by Nathan Ridley on