isObject (v2)

Revision 2 of this benchmark created by Daniel Streit on


Setup

var obj = {};
    var n = 3;
    var nl = null;
    var un = undefined;
    var s = 'str';
    var ar = [];
    var fn = function() {};
    
    function isObject(value){return value != null && typeof value === 'object';}
    
    function isObject1(value){return value !== null && typeof value === 'object';}
    
    function isObject2(value){return typeof value === 'object' && value != null;}
    
    function isObject3(value){return typeof value === 'object' && value !== null;}
    
    
    function isObject4(value){return !!(value && (typeof value === 'object' || typeof value === 'function')); }
    
    function isObject5(value){return value && value !== null && typeof value === 'object';}
    
    function isObjectLoDash(value) {
          // avoid a V8 bug in Chrome 19-20
          // https://code.google.com/p/v8/issues/detail?id=2291
          var type = typeof value;
          return type == 'function' || (value && type == 'object') || false;
    }
    
    function isObject6(value) {
      return value === Object(value);
    }
    
    function isObject7(value) {
      return typeof value === 'object' && !!obj;
    }

Test runner

Ready to run.

Testing in
TestOps/sec
isObject
isObject(obj);
isObject(n);
isObject(nl);
isObject(un);
isObject(s);
isObject(ar);
isObject(fn);
ready
isObject1
isObject1(obj);
isObject1(n);
isObject1(nl);
isObject1(un);
isObject1(s);
isObject1(ar);
isObject1(fn);
ready
isObject2
isObject2(obj);
isObject2(n);
isObject2(nl);
isObject2(un);
isObject2(s);
isObject2(ar);
isObject2(fn);
ready
isObject3
isObject3(obj);
isObject3(n);
isObject3(nl);
isObject3(un);
isObject3(s);
isObject3(ar);
isObject3(fn);
ready
isObject4
isObject4(obj);
isObject4(n);
isObject4(nl);
isObject4(un);
isObject4(s);
isObject4(ar);
isObject4(fn);
ready
isObject5
isObject5(obj);
isObject5(n);
isObject5(nl);
isObject5(un);
isObject5(s);
isObject5(ar);
isObject5(fn);
ready
isObjectLoDash
isObjectLoDash(obj);
isObjectLoDash(n);
isObjectLoDash(nl);
isObjectLoDash(un);
isObjectLoDash(s);
isObjectLoDash(ar);
isObjectLoDash(fn);
ready
isObject6
isObject6(obj);
isObject6(n);
isObject6(nl);
isObject6(un);
isObject6(s);
isObject6(ar);
isObject6(fn);
ready
isObject7
isObject7(obj);
isObject7(n);
isObject7(nl);
isObject7(un);
isObject7(s);
isObject7(ar);
isObject7(fn);
ready

Revisions

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