js判断数据类型

    var toString = Object.prototype.toString;

    function kindof(val) {
      // primitivies
      if (typeof val === 'undefined') {
        return 'undefined';
      }
      if (val === null) {
        return 'null';
      }
      if (val === true || val === false || val instanceof Boolean) {
        return 'boolean';
      }
      if (typeof val === 'string' || val instanceof String) {
        return 'string';
      }
      if (typeof val === 'number' || val instanceof Number) {
        return 'number';
      }

      // functions
      if (typeof val === 'function' || val instanceof Function) {
        return 'function';
      }

      // array
      if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {
        return 'array';
      }

      // check for instances of RegExp and Date before calling `toString`
      if (val instanceof RegExp) {
        return 'regexp';
      }
      if (val instanceof Date) {
        return 'date';
      }

      // other objects
      var type = toString.call(val);

      if (type === '[object RegExp]') {
        return 'regexp';
      }
      if (type === '[object Date]') {
        return 'date';
      }
      if (type === '[object Arguments]') {
        return 'arguments';
      }
      if (type === '[object Error]') {
        return 'error';
      }
    }

你可能感兴趣的:(js判断数据类型)