js使用typeof与instanceof相结合编写一个判断常见变量类型的函数
/**
* 常见类型判断
* @param {any} param
*/
function getParamType(param) {
// 先判断是否能用typeof 直接判断
let types1 = ['number', 'string', 'boolean', 'undefined', 'symbol', 'function']
let type = typeof param;
type = types1.indexOf(type);
if (type !== -1) {
return types1[type]
}
// 剩余的用instanceof判断
switch (true) {
case param instanceof Date:
return 'date'
case param instanceof Array:
return 'array'
case param instanceof Object:
return 'object'
case null === param && !param:
return 'null'
default:
return 'can not judge'
}
}
console.log(getParamType(1)); // number
console.log(getParamType('1')); // string
console.log(getParamType(true)); // boolean
console.log(getParamType(undefined)); // undefined
console.log(getParamType(Symbol.for(2))); // symbol
console.log(getParamType(() => 1)); // function
console.log(getParamType([])); // array
console.log(getParamType({})); // object
console.log(getParamType(new Date())); // date
console.log(getParamType(null)); // null
js使用typeof与instanceof相结合编写一个判断常见变量类型的函数的更多相关文章
- JS中typeof与instanceof的区别
JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的.但它们之间还是有区别的: Typeof typeof 是一个一元运算,放在一个运算数之前 ...
- JS中typeof与instanceof的区别 (2010-05-26 10:47:40
JavaScript 中 typeof 和 instanceof 常用来判断一个变量是否为空,或者是什么类型的.但它们之间还是有区别的: typeof typeof 是一个一元运算,放在一个运算数之前 ...
- js里typeof和instanceof和箭头表达式要注意的地方,以及其他
如果学过类似C#这样的语言,然后定义两个类class Mu{}和class Ku{},那么显然typeof Mu != typeof Ku的,但是在js里则不是这样,对于Mu和Ku的对象进行typeo ...
- 工程师技术(五):Shell脚本的编写及测试、重定向输出的应用、使用特殊变量、编写一个判断脚本、编写一个批量添加用户脚本
一.Shell脚本的编写及测 目标: 本例要求两个简单的Shell脚本程序,任务目标如下: 1> 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话“Hello ...
- shell编写一个判断脚本
shell编写一个判断脚本 4.1问题 本例要求在虚拟机server0上创建/roo ...
- Python_代码练习_写一个判断是否为小数的函数
这两天在学习函数,练习写一个判断是否为小数的函数,看起来蛮简单的,飞速写完很是得意,然后测了一下,发现差得好多呀,这个并不像想象那样简单,我得到的教训是,想要把一个需求哪怕再小的需求考虑周全,都不是件 ...
- js中typeof和instanceof
对于typeof和instanceof,我们经常用来检测数据的类型.typeof可以检测Number.Boolean.String.Undefined类型,对于其他类型的数据都返回为object:而i ...
- js中typeof与instanceof用法区别
今天写JS代码,遇到动态生成多个名称相同的input复选按钮 需要判断其是否是数组,用到了if (typeof(document.MapCheckMgr.checkid)!="undefin ...
- js中typeof与instanceof区别
今天写JS代码,遇到动态生成多个名称相同的input复选按钮 需要判断其是否是数组,用到了if (typeof(document.MapCheckMgr.checkid)!="undefin ...
- 小tips:JS中typeof与instanceof用法
介绍 typeof typeof用以获取一个变量或者表达式的类型,typeof一般只能返回如下几个结果: number boolean string function(函数) object(NULL, ...
随机推荐
- SqlDapperEasyUtil:.NET CORE下的Dapper封装操作类
之前介绍了基于Dapper二次封装了一个易用的ORM工具类:SqlDapperUtil,这个在.NET FX下还是比较好用的,现在都流行.NET CORE,故我这边再次进行精简修改,以便适应.NET ...
- ElasticSearch7.3学习(十七)----搜索结果字段解析及time_out字段解析
1.搜索结果字段解析 首先插入一条测试数据 PUT /my_index/_doc/1 { "title": "2019-09-10" } 然后无条件搜索所有 G ...
- 剑指Offer07 重建二叉树
剑指 Offer 07. 重建二叉树 前置概念: 前序:访问根节点,先序遍历左子树,先序遍历右子树: 中序:中序遍历左子树,访问根节点,中序遍历右子树: 后序:后序遍历左子树,后序遍历右子树,访问根节 ...
- NVME学习笔记杂谈—名词定义
1.5 定义1.5.1 Admin QueueAdmin Queue 是标识符为 0 的 Submission Queue 和 Completion Queue .Admin Submission Q ...
- 解决springboot整合freemarker页面跳转404
问题说明 spring boot 2.1.5集成freemarker时跳转报404! 集成过程说明 pom.xml <dependency> <groupId>org.free ...
- 【Android 逆向】【攻防世界】easy-apk
apk 安装到手机,随便输入点内容,提示错误 2. apk 拖入到jadx中看看 public class MainActivity extends AppCompatActivity { /* JA ...
- 反射,装饰器,类当中的方法,property---day24
1.反射 # ### 反射(针对于类对象 模块) '''概念:通过字符串去操作类对象或者模块当中的成员(属性方法)''' class Man(): pass class Woman(): pass c ...
- docker自定义bridge网络
>>> docker network create -d bridge bridge-net # 创建一个名为bridge-net的网络 # 测试,启动两个容器,并且接入到bridg ...
- 内存管理机制 & 垃圾回收机制
内存管理机制 python是由c开发出来的. 看源码分析,下载python安装包tar包 解压后主要看Include和Objects这两个文件夹 # 分析 在创建对象时,如 v = 0.3 源码内部: ...
- ABP的版本升级,从7.2.2升级到7.2.3
1.升级ABP CLI 见前面的文章:ABP开发需要用到的命令 更新最新版本: ~~~ dotnet tool update -g Volo.Abp.Cli ~~~ 2.升级ABP Suite 见前面 ...