delete vs undefined vs null

JavaScript performance comparison

Revision 11 of this test case created by

Preparation code

<script>
  var id, o = {
    p: {}
  };

  function reset() {
    if (!o.p) o.p = ++id;
  }
</script>
    

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in CCBot 2.0.0 / Other 0.0.0
Test Ops/sec
delete object.property
id = 0;
for (var i = 0; i < 1000; i++) {
  delete o.p;
  reset();
};
pending…
delete object["property"]
id = 0;
for (var i = 0; i < 1000; i++) {
  delete o["p"];
  reset();
}
pending…
object.property = undefined
id = 0;
for (var i = 0; i < 1000; i++) {
  o.p = undefined;
  reset();
}
pending…
object["property"] = undefined
id = 0;
for (var i = 0; i < 1000; i++) {
  o["p"] = undefined;
  reset();
}
pending…
object.property = null
id = 0;
for (var i = 0; i < 1000; i++) {
  o.p = null;
  reset();
}
pending…
object["property"] = null
id = 0;
for (var i = 0; i < 1000; i++) {
  o["p"] = null;
  reset();
}
pending…
object.property = void 0
id = 0;
for (var i = 0; i < 1000; i++) {
  o.p = void 0;
  reset();
}
pending…
object["property"] = void 0
id = 0;
for (var i = 0; i < 1000; i++) {
  o["p"] = void 0;
  reset();
}
pending…

Compare results of other browsers

Revisions

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

0 Comments