最安全的js类型检测
众所周知js内置的类型检测机制不可靠,比如typeof操作符,对于正则和数组检测时返回值都是object, 而使用instanceof检测类型时,虽然可以对正则和数组正常验证,但验证undefined会报错,还有对于Symbol无法验证,
Object.prototype.toString执行的时候会返回当前方法中this的所属信息。也就是说,但我们需要检测类型时,就把这个toString执行,并其让this变为我们检测的这个数据值,那么返回的结果就是当前检测这个值的类型
/* 安全的类型检测*/
const typeChecking = {}
typeChecking.isArray = function(value) {return Object.prototype.toString.call(value) === '[object Array]'
}
typeChecking.isFunction = function(value) {return Object.prototype.toString.call(value) === '[object Function]'
}
typeChecking.isNumber = function(value) {return Object.prototype.toString.call(value) === '[object Number]'
}
typeChecking.isBoolean = function(value) {return Object.prototype.toString.call(value) === '[object Boolean]'
}
typeChecking.isString = function(value) {return Object.prototype.toString.call(value) === '[object String]'
}
typeChecking.isRegExp = function(value) {return Object.prototype.toString.call(value) === '[object RegExp]'
}
typeChecking.isUndefined = function(value) {return Object.prototype.toString.call(value) === '[object Undefined]'
}
typeChecking.isSymbol = function(value) {return Object.prototype.toString.call(value) === '[object Symbol]'
}
最安全的js类型检测相关推荐
- JavaScript中类型检测
文章首发: http://www.cnblogs.com/sprying/p/4349426.html 本文罗列了一般Js类型检测的方法,是构建Js知识体系的一小块,这篇文章是我很早之前总结的. 一. ...
- 数据类型 类型检测
原始类型: 基本类型:number string boolean null undifined object object分为 Function Array Date number string bo ...
- Flow 是一个静态类型检测工具
参照:https://zhuanlan.zhihu.com/p/26204569 Flow 是一个静态类型检测工具:在现有项目中加上类型标注后,可以在代码阶段就检测出对变量的不恰当使用.Flow 弥补 ...
- JS数据类型检测的坑和通用数据类型检测方法
目录 1 前言 2 四种数据类型检测方法介绍 2.1 typeof的坑及原理 2.2 instanceof的坑及原理 2.3 constructor的坑及原理 2.4 Object.prototype ...
- JavaScript类型检测小结-http://bbs.51js.com/viewthread.php?tid=82661
老话题了,各种方案和相关讨论都不少,简单总结下: 悠久的typeof JavaScript里只有五种基本数据类型:number, string, boolean, null, undefined. 其 ...
- react 中的propTypes类型检测
咋说了,可能跟 js本身弱类型语言有关吧, 当我们的react项目 越来越庞大而又复杂的时候, 特别是那种公共组件,如果不限制类型 可能会千奇百怪的往里面传入一些数据, 除非 你的文档中很详细描述每个 ...
- 聊一聊JavaScript的类型检测
JavaScript的类型检测 一共有四种原生办法检测js的类型 1. typeof 2. instanceof 3. constructor 4. Object.prototype.toString ...
- 使用=React.PropTypes进行类型检测
使用PropTypes进行类型检测 随着你的应用的变得越来越大,你可以通过typechecking来找到更多的bug. 对于某些应用,您可以使用JavaScript扩展(如Flow或TypeScrip ...
- 原创 | 基于AI的智能急性颅内出血类型检测
作者:杨毅远 本文约6400字,建议阅读10分钟 本文介绍了通过AI技术检测急性颅内出血类型方面的知识. 颅内出血(颅骨内出血)是医疗领域严重的健康问题,需要快速且经常进行密集的医学治疗.在美国,颅内 ...
最新文章
- Reject: HTTP ‘DELETE‘ is not allowed, Not injecting HSTS.....DELETE请求PUT请求跨域问题
- Streaming源码解读之接收流数据的全生命周期
- Android杂谈--ListView之BaseAdapter的使用二(转)
- tensorflow-yolov3 调试Intel Realsense D435摄像头所遇到的问题(USB自动检测并重置机制)hardware_reset() pyusb libusb devcon
- Linux环境下压缩与解压命令大全
- 大话领域驱动设计——简介
- 优秀的程序员VS糟糕的程序员
- 【记】接口自动化测试,完整入门篇
- 使用「Bartender」创建简洁的Mac菜单栏
- 三级分销系统源码如何上传?
- 如何快速提取手机微信数据?
- 鹏业安装算量材料表不能复制问题解答
- 电脑可以登录QQ但是却无法打开网页
- c语言里10h代表什么,bios 10h中断是什么意思啊?
- 6m缓存和8m缓存差距_6张图,就可以了解1660Ti与RX590的差距
- Packet Tracer - 排除 VLAN 间路由故障
- 获取微信小程序页面路径【保姆级教程】
- Java 练习题:求平方根
- 国密SM4算法(简介与C源码)
- 300题目 第10讲 积分等式与积分不等式