1、isStatic:檢測數據是不是除了symbol外的原始數據
function isStatic(value) { return( typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || typeof value === 'undefined' || value === null )}2、isPrimitive:檢測數據是不是原始數據
function isPrimitive(value) { return isStatic(value) || typeof value === 'symbol'}3、isObject:判斷數據是不是引用類型的數據 (例如: arrays, functions, objects, regexes, new Number(0),以及 new String(''))
function isObject(value) { let type = typeof value; return value != null && (type == 'object' || type == 'function');}4、isObjectLike:檢查 value 是否是 類對象。 如果一個值是類對象,那么它不應該是 null,而且 typeof 后的結果是 "object"
function isObjectLike(value) { return value != null && typeof value == 'object';}5、getRawType:獲取數據類型,返回結果為 Number、String、Object、Array等
function getRawType(value) { return Object.prototype.toString.call(value).slice(8, -1)}//getoRawType([]) ==> Array6、isPlainObject:判斷數據是不是Object類型的數據
function isPlainObject(obj) { return Object.prototype.toString.call(obj) === '[object Object]'}7、isArray:判斷數據是不是數組類型的數據
function isArray(arr) { return Object.prototype.toString.call(arr) === '[object Array]'}將isArray掛載到Array上
Array.isArray = Array.isArray || isArray;
8、isRegExp:判斷數據是不是正則對象
function isRegExp(value) { return Object.prototype.toString.call(value) === '[object RegExp]'}9、isDate:判斷數據是不是時間對象
function isDate(value) { return Object.prototype.toString.call(value) === '[object Date]'}10、isNative:判斷 value 是不是瀏覽器內置函數
內置函數toString后的主體代碼塊為 [native code] ,而非內置函數則為相關代碼,所以非內置函數可以進行拷貝(toString后掐頭去尾再由Function轉)
function isNative(value) { return typeof value === 'function' && /native code/.test(value.toString())}11、isFunction:檢查 value 是不是函數
function isFunction(value) { return Object.prototype.toString.call(value) === '[object Function]'}12、isLength:檢查 value 是否為有效的類數組長度
function isLength(value) { return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= Number.MAX_SAFE_INTEGER;}
新聞熱點
疑難解答
圖片精選