toString.call()和判斷變量類型

1. toString.call()

  • 字符串: [object String]
  • 數(shù)字: [object Number]
  • 數(shù)組: [object Array]
  • 對象: [object Object]
  • 方法: [object Function]
  • null, undefined: [object Null], [object Undefined]
  • toString.call(new Date()): [object Date]

2. 判斷類型:

var isArrayLike = function(collection) {
    var length = getLength(collection);
    return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;
  };

  var isString = function(obj) {
    return toString.call(obj) === '[object String]';
  };

  var isArguments = function(obj) {
    return toString.call(obj) === '[object Arguments]';
  };

var isArray = nativeIsArray || function(obj) {
    return toString.call(obj) === '[object Array]';
  };

  // Is a given variable an object?
  var isObject = function(obj) {
    var type = typeof obj;
    return type === 'function' || type === 'object' && !!obj;
  };

  // Is a given value a boolean?
  var isBoolean = function(obj) {
    return obj === true || obj === false || toString.call(obj) === '[object Boolean]';
  };

  // Is a given value equal to null?
  var isNull = function(obj) {
    return obj === null;
  };

  // Is a given variable undefined?
  var isUndefined = function(obj) {
    return obj === void 0;
  };

// Is a given array, string, or object empty?
  // An "empty" object has no enumerable own-properties.
 var isEmpty = function(objOrArray) {
    if (objOrArray == null) {
      return true;
    }
    if (isArrayLike(objOrArray) && (isArray(objOrArray) || isString(objOrArray) || isArguments(objOrArray))) {
      return objOrArray.length === 0;
    }
    return keys(objOrArray).length === 0;
  };
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容