isObject

Benchmark created by Igor Minar 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);
  }

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

Revisions

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