首页 > 其他分享 >utils&js - 判断数据类型

utils&js - 判断数据类型

时间:2023-03-09 10:45:09浏览次数:36  
标签:判断 const val utils 数据类型 是否是 js export toString

utils&js - 判断数据类型

/**
 * 判断文件
 * 
 * 如果你需要类型判断,请不要再使用 Object.prototype.toString.call()方法
 * 直接调用我们下方封装好的is函数即可
 * 我想,以下函数,已经可以满足所有情况下的类型判断
 */

export const toString = Object.prototype.toString;

export const is = (val, type) => toString.call(val) === `[object ${type}]`;

//判断非undefined
export const isDef = (val) => typeof val !== 'undefined';

//判断是undefined
export const isUnDef = (val) => !isDef(val);

//判断是否是对象
export const isObject = (val) => val !== null && toString.call(val) === `[object Object]`;

export const isEmpty = (val) => {
    if (isArray(val) || isString(val)) return val.length === 0;
    if (val instanceof Map || val instanceof Set) return val.size === 0;
    if (isObject(val)) return Object.keys(val).length === 0;
    return;
}

//判断是否是时间类型
export const isDate = (val) => is(val, "Date");

//判断是否是null类型
export const isNull = (val) => val === null;

//判断不可访问类型
export const isNullAndUnDef = (val) => isUnDef(val) && isNull(val);

//判断undefined和null其中一个
export const isNullOrUnDef = (val) => isUnDef(val) || isNull(val);

//判断是否是数字类型
export const isNumber = (val) => is(val, "Number");

//判断是否是Promise类型
export const isPromise = (val) => {
    return (
        is(val, "Promise")
    )
}

//判断是否是字符类型
export const isString = (val) => is(val, "String");

//判断是否为函数
export const isFunction = (val) => typeof val === "function";

//判断是否为booean类型
export const isBoolean = (val) => is(val, "Boolean");

//判断是否是正则表达式
export const isRegExp = (val) => is(val, "RegExp");

//判断是否是数组
export const isArray = (val) => val && Array.isArray(val);

//判断是否是window对象
export const isWindow = (val) => typeof window !== "undefined" && is(val, "Window");

标签:判断,const,val,utils,数据类型,是否是,js,export,toString
From: https://www.cnblogs.com/zc-lee/p/17197491.html

相关文章

  • js文字转语音
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content......
  • 03、数据采集对象与数据类型
    转载公众号《微言晓意》,仅用于个人学习安全告警、系统与应用日志、网络流量以及资产漏洞、威胁情报等数据中,都包含大量有价值的安全信息,对这些分离的多源异构数据进行统一......
  • postgresql 中同一数据类型在不同标准下的命名方式
    我在使用pgadim和navicate时发现它们的数据类型和生成sql语句完全不一样,于是问了一下ChatGPT,算是搞清楚了。以下内容来自ChatGPT:1.postgresql中doubleprecisio......
  • node.js版本管理器——NVM
    在日常工作中,需同时开发好几个前端项目的时候,可能不同项目使用的node的版本也不一样,而一台电脑只能安装和同时使用一个版本的node,这个时候我们需要借助NVM来管理node的版本......
  • 【转载】node服务开发和服务器部署(node.js+koa2+pm2+nginx)教程
    我为什么要写这篇文章昨天晚上有个小哥发维信给我,问我怎么部署一个node服务,有没有相关教程,我有点震惊,就问他有哪些不懂,他说几乎都不懂。我想他应该也是找过相关教程了......
  • 浏览器控制台引入css和js
    varimport_css=document.createElement('link');import_css.setAttribute("rel","stylesheet");import_css.setAttribute("href",'https://cdn.bootcdn.net/ajax/lib......
  • 基于JSP+javaBean的留言板--改进(附源码)
    一、系统的主要功能和特点系统主要实现了以JSP和JavaBean为基础的留言板。主要包括登录、登陆检查、增加留言、查看全部留言信息、查看指定留言信息等功能实现了数据的读......
  • Rocky Linux 9 安装 Node.js
    一、概要1.环境(1)RockyLinux9.1(2)Node.js16.0二、安装1.准备(1)更新仓库sudodnfupdate-y(2)安装NPM依赖的构建工具sudoyumgroupinstall'Deve......
  • 遍历JSONObject、JSONArray (适用任意复杂结构类型)
    https://blog.csdn.net/xiangshui021/article/details/120059652?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7......
  • JS系列--【千分位处理和还原】
    1.千分位转化文件utils/common.jsconsttoThousands=function(value,num=0){if(value==null){return}if(value>0){value......