站长网 教程 JavaScript开发优秀的工具函数

JavaScript开发优秀的工具函数

副标题#e# 1、isStatic:检测数据是不是除了symbol外的原始数据 functionisStatic(value){ return( typeofvalue===string|| typeofvalue===number|| typeofvalue===boolean|| typeofvalue===undefined|| value===null ) } 2、isPrimitive:检测数据是不是原

副标题#e#

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([]) ==> Array 

6、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上

ArrayArray.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) {  

#p#副标题#e#

    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;  

13、isArrayLike:检查 value 是否是类数组

如果一个值被认为是类数组,那么它不是一个函数,并且value.length是个整数,大于等于 0,小于或等于 Number.MAX_SAFE_INTEGER。这里字符串也将被当作类数组

function isArrayLike(value) {  

      return value != null && isLength(value.length) && !isFunction(value);  

14、isEmpty:检查 value 是否为空

如果是null,直接返回true;如果是类数组,判断数据长度;如果是Object对象,判断是否具有属性;如果是其他数据,直接返回false(也可改为返回true)

function isEmpty(value) {  

    if (value == null) {  

        return true;  

    }  

    if (isArrayLike(value)) {  

        return !value.length;  

    }else if(isPlainObject(value)){  

          for (let key in value) {  

            if (hasOwnProperty.call(value, key)) {  

              return false;  

            }  

        }  

        return true;  

    }  

    return false;  

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/video/2021/0524/5498.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部