JS类型判断的那些方法

目前类型判断有三种方法:typeof  、instanceof  、Object.prototype.toString.call

typeof:只能判断基础类型和函数类型

typeof 2            // number
typeof true         // boolen
typeof 'str'        // string
typeof function(){} // function
typeof undefined    // undefinedtypeof null          // object
typeof {}            // object
typeof []            // object

instanceof:只能判断引用类型

[] instanceof Array                //true
{} instanceof Object               //true
function(){} instanceof Function   //true666 instanceof Number              //false
'str' instanceof String            //false
true instanceof Blooen             //false

Object.prototype.toString.call:可以判断各种类型,就是结果比较不友好

Object.toString.call(2)             // [object Number]
Object.toString.call('str')         // [object String]
Object.toString.call(true)          // [object Booleen]
Object.toString.call(undefined)     // [object Undefined]
Object.toString.call(null)          // [object Null]Object.toString.call(function(){})  // [object Funtion]
Object.toString.call({})            // [object Object]
Object.toString.call([])            // [object Array]

根据上面的各种方法,进行封装

1.基本类型和函数类型就直接用typeof直接返回

2.遇到{},[],null的用Object.prototype.toString.call判断后进行截取再转小写

function getType(type) {if(typeof type === 'object') {retutn Object.prototypeof.toString.call(type).slice(8,-1).toLowerCase()} else {retutn typeof type}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/58463.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

StarRocks入门到熟悉

1、部署 1.1、注意事项 需要根据业务需求设计严谨的集群架构,一般来说,需要注意以下几项: 1.1.1、FE数量及高可用 FE的Follower要求为奇数个,且并不建议部署太多,通常我们推荐部署1个或3个Follower。在三个Followe…

STM32驱动SD卡(SPI)方式

外观 代码(免费分享) 接线 5V供电 CS接PA3 剩下如图按照硬件SPI1接线 注意事项 使用杜邦线接线非常不稳定!!! 使用杜邦线接线非常不稳定!!! 使用杜邦线接线非常不稳定!!&#…

将Spring Boot与Redis集成

一、引言 1、SpringBoot: Spring Boot是一个用于创建独立且可执行的Spring应用程序的框架。它简化了基于Spring框架的应用程序的开发过程,并提供了一种快速和简便的方式来构建Java应用程序。 Spring Boot提供了自动配置机制,通过引入适当的…

图的存储:十字链表,邻接多重表

1.十字链表存储有向图 1.存储方式 分为顶点结点和弧结点两种结构体 顶点结点使用数组顺序存储,结构体包括:数据域,作为顶点弧头的第一条弧,作为顶点弧尾的第一条弧。 弧结点,结构体包括:弧头相同的下一…

Python中pip和conda的爱恨情仇

在使用pip和conda时,是否也有过以下的疑惑??? 目前只总结了以下常见的几种混淆,如有学者还有其它疑惑,欢迎留言讨论,我会解答更新,帮助自己理清的同时,也帮助其他同样困…

从零开始学JAVA——常用类

常用类 课后习题一:课后练习二:课后练习三:课后练习四课后练习五: 课后习题一: 将字符串“2016-02-22”转换为对应的java.sql.Date类的对象 SimpDateFormat sdf new SimpDateFormate(“yyyy-MM-DD”); 解析 java.ut…

机械臂+2d相机实现复合机器人定位抓取

硬件参数 机械臂:艾利特 相机:海康相机 2d识别库:lindmod,github可以搜到 光源:磐鑫光源 软件参数 系统:windows / Linux 开发平台:Qt 开发语言:C 开发视觉库:OpenCV …

nlp系列(7)三元组识别(Bert+CRF)pytorch

模型介绍 在实体识别中:使用了Bert模型,CRF模型 在关系识别中:使用了Bert模型的输出与实体掩码,进行一系列变化,得到关系 Bert模型介绍可以查看这篇文章:nlp系列(2)文本分类&…

gitlab-runner安装和部署项目

目录 1.安装gitlab-runner 1.1 添加官方仓库 1.2.1 安装最新版本 1.2.2 安装指定版本(可选) 1.2.3 更新runner(可选) 1.3 随便点开gitlab上的一个项目 1.4 gitlab-runner的注册 2.配置gitlab-runner 3.runner一些命令 gi…

通达OAV12版本,表单及流程,定制开发总结

通达OA-V12版本,表单及流程,定制开发总结 触发器金蝶系统对接 日期:2023年8月29日 触发器 一键转交操作,不会调用触发器。 解决办法:可以按需要按步骤,关闭一键转交按钮。这里会隐藏一键转交、一键结束按钮…

立创EDA专业版的原理图上器件有一个虚线框

立创EDA专业版的原理图上器件有一个虚线框解决方法 问题分析: 在使用立创EDA专业版 设计电路原理图时,中途莫名其妙就给我的元件添加了下面图片所示的虚线外框。看着就很别扭的样子,而且工程大了和器件稍微布局比较密的时候就导致整体很难看…

图像分类学习笔记(六)——ResNeXt

一、要点 ResNeXt是ResNet的小幅升级,更新了block 左边(ResNet的block/50/101/152层): 对于输入通道为256的特征矩阵,首先使用64个11的卷积核进行降维,再通过64个33的卷积核处理,再通过256个1…

项目进度与实施计划汇报实践样例模板

一、IT项目实施步骤 项目启动 项目启动 项目启动 项 项目启动 | 需求调研 | 解决方案设计与系统实现 | UAT测试与培训 | 上线与运维支持

C++ 修饰符类型

C 修饰符类型 C 允许在 char、int 和 double 数据类型前放置修饰符。 修饰符是用于改变变量类型的行为的关键字,它更能满足各种情境的需求。 下面列出了数据类型修饰符: signed:表示变量可以存储负数。对于整型变量来说,signed…

nlp大模型课程笔记

自然语言处理基础和应用 👆说明之前的大模型其实有很多都是基于迁移学习的方法。 attention机制的总结,解决了信息瓶颈的问题。 处理词组时BPE的过程 👆pos表示的是token所在的位置 👆技巧是layer normalization。

Nexus2迁移升级到Nexus3

与 Nexus 2.x 相比,Nexus 3.x 为我们提供了更多实用的新特性。SonaType 官方建议我们,使用最新版本 Nexus 2.x 升级到最新版本 Nexus 3.x,并在 Nexus 升级兼容性 一文中为我们提供了各个版本 Nexus 升级到最新版本 Nexus 3.x 的流程&#xff…

Cloudpods 私有云平台有哪些优势?

作为一套完整的私有云管理软件,我们经常会被问到 Cloudpods 和其他的同类产品相比,有哪些优势?我总结了 2 个方面,供大家参考。 功能方面 产品化,开箱即用,易用性较高,基本上都可以傻瓜式的操…

Future

Future Future接口由FutureTask 实现类定义了操作异步任务执行的一些方法,比如异步任务的执行结果、取消任务的执行、判断任务是否被取消、判断任务执行是否完毕等。Future 接口可以为主线程开一个分支任务,专门为主线程处理耗时和费力的业务。 Future…