Undescore _.isUnDefined vs typeof vs === undefined (v3)

Revision 3 of this benchmark created by Slipp Douglas on


Preparation HTML

<script src="https://raw.github.com/documentcloud/underscore/master/underscore-min.js"></script>

Setup

var xValue,
        yValue,
        zValue,
        undefined,
        myundefinedvar,
        mydefinedvar = 'test',
        myemptyvar = '',
        _ = window._,
        i = 0;

Teardown


    window.xValue = xValue;
    window.yValue = yValue;
    window.zValue = zValue;
  

Test runner

Ready to run.

Testing in
TestOps/sec
_.isUndefined()
if (_.isUndefined(myundefinedvar)) {
  xValue = ++i; // Do stuff
}

if (!_.isUndefined(mydefinedvar)) {
  yValue = ++i; // Do stuff
}

if (!_.isUndefined(myemptyvar)) {
  zValue = ++i; // Do stuff
}
ready
Equals undefined (hard)
if (myundefinedvar === undefined) {
  xValue = ++i; // Do stuff
}

if (!(mydefinedvar === undefined)) {
  yValue = ++i; // Do stuff
}

if (!(myemptyvar === undefined)) {
  zValue = ++i; // Do stuff
}
ready
Equals undefined (soft)
if (myundefinedvar == undefined) {
  xValue = ++i; // Do stuff
}

if (!(mydefinedvar == undefined)) {
  yValue = ++i; // Do stuff
}

if (!(myemptyvar == undefined)) {
  zValue = ++i; // Do stuff
}
ready
Typeof undefined (hard)
if (typeof myundefinedvar === "undefined") {
  xValue = ++i; // Do stuff
}

if (!(typeof mydefinedvar === "undefined")) {
  yValue = ++i; // Do stuff
}

if (!(typeof myemptyvar === "undefined")) {
  zValue = ++i; // Do stuff
}
ready
Typeof undefined (soft)
if (typeof myundefinedvar == "undefined") {
  xValue = ++i; // Do stuff
}

if (!(typeof mydefinedvar == "undefined")) {
  yValue = ++i; // Do stuff
}

if (!(typeof myemptyvar == "undefined")) {
  zValue = ++i; // Do stuff
}
ready
Void 0
if (myundefinedvar === void 0) {
  xValue = ++i; // Do stuff
}

if (!(mydefinedvar === void 0)) {
  yValue = ++i; // Do stuff
}

if (!(myemptyvar === void 0)) {
  zValue = ++i; // Do stuff
}
ready

Revisions

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

  • Revision 1: published by Keith Cirkel on
  • Revision 3: published by Slipp Douglas on