function isEmpty(value) {
      var result = true;
      if (!value) {
        return result;
      }
      var className = toString.call(value),
          length = value.length;

      if ((className == arrayClass || className == stringClass ||
          (support.argsClass ? className == argsClass : isArguments(value))) ||
          (className == objectClass && typeof length == 'number' && isFunction(value.splice))) {
        return !length;
      }
      forOwn(value, function() {
        return (result = false);
      });
      return result;
    }
Checks if `value` is empty. Arrays, strings, or `arguments` objects with a
length of `0` and objects with no own enumerable properties are considered
"empty".

@static
@memberOf _
@category Objects
@param {Array|Object|string} value The value to inspect.
@returns {boolean} Returns `true` if the `value` is empty, else `false`.
@example

_.isEmpty([1, 2, 3]);
// => false

_.isEmpty({});
// => true

_.isEmpty('');
// => true