bangbang-vs-implicit

Benchmark created by bang bang on


Setup

var testData = {
      "undefined": this.anUndefinedVariable,
      "null": null,
      "true value": true,
      "false value": false,
      "true string": "true",
      "false string": "false",
      "-2": -2,
      "-1": -1,
      "0": 0,
      "1": 1,
      "2": 2,
      "-2 string": "-2",
      "-1 string": "-1",
      "0 string": "0",
      "1 string": "1",
      "2 string": "2",
      "empty string": "",
      "non-empty string": "test string",
      "function": function() {},
      "object": {},
      "array": [],
      "empty string as object": new String(""),
      "non-empty string as object": new String("some string"),
      "0 as number object": new Number(0),
      "1 as number object": new Number(1),
      "2 as number object": new Number(2),
      "-1 as number object": new Number(-1),
      "true as boolean object": new Boolean(true),
      "false as boolean object": new Boolean(false)
    }

Test runner

Ready to run.

Testing in
TestOps/sec
implicit
var result;
for (var key in testData) {
  result = (testData[key] == true);
}
ready
explicit
var result;
for (var key in testData) {
  result = !!testData[key];
}
ready

Revisions

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

  • Revision 1: published by bang bang on