众所周知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类型检测相关推荐

  1. JavaScript中类型检测

    文章首发: http://www.cnblogs.com/sprying/p/4349426.html 本文罗列了一般Js类型检测的方法,是构建Js知识体系的一小块,这篇文章是我很早之前总结的. 一. ...

  2. 数据类型 类型检测

    原始类型: 基本类型:number string boolean null undifined object object分为 Function Array Date number string bo ...

  3. Flow 是一个静态类型检测工具

    参照:https://zhuanlan.zhihu.com/p/26204569 Flow 是一个静态类型检测工具:在现有项目中加上类型标注后,可以在代码阶段就检测出对变量的不恰当使用.Flow 弥补 ...

  4. JS数据类型检测的坑和通用数据类型检测方法

    目录 1 前言 2 四种数据类型检测方法介绍 2.1 typeof的坑及原理 2.2 instanceof的坑及原理 2.3 constructor的坑及原理 2.4 Object.prototype ...

  5. JavaScript类型检测小结-http://bbs.51js.com/viewthread.php?tid=82661

    老话题了,各种方案和相关讨论都不少,简单总结下: 悠久的typeof JavaScript里只有五种基本数据类型:number, string, boolean, null, undefined. 其 ...

  6. react 中的propTypes类型检测

    咋说了,可能跟 js本身弱类型语言有关吧, 当我们的react项目 越来越庞大而又复杂的时候, 特别是那种公共组件,如果不限制类型 可能会千奇百怪的往里面传入一些数据, 除非 你的文档中很详细描述每个 ...

  7. 聊一聊JavaScript的类型检测

    JavaScript的类型检测 一共有四种原生办法检测js的类型 1. typeof 2. instanceof 3. constructor 4. Object.prototype.toString ...

  8. 使用=React.PropTypes进行类型检测

    使用PropTypes进行类型检测 随着你的应用的变得越来越大,你可以通过typechecking来找到更多的bug. 对于某些应用,您可以使用JavaScript扩展(如Flow或TypeScrip ...

  9. 原创 | 基于AI的智能急性颅内出血类型检测

    作者:杨毅远 本文约6400字,建议阅读10分钟 本文介绍了通过AI技术检测急性颅内出血类型方面的知识. 颅内出血(颅骨内出血)是医疗领域严重的健康问题,需要快速且经常进行密集的医学治疗.在美国,颅内 ...

最新文章

  1. Reject: HTTP ‘DELETE‘ is not allowed, Not injecting HSTS.....DELETE请求PUT请求跨域问题
  2. Streaming源码解读之接收流数据的全生命周期
  3. Android杂谈--ListView之BaseAdapter的使用二(转)
  4. tensorflow-yolov3 调试Intel Realsense D435摄像头所遇到的问题(USB自动检测并重置机制)hardware_reset() pyusb libusb devcon
  5. Linux环境下压缩与解压命令大全
  6. 大话领域驱动设计——简介
  7. 优秀的程序员VS糟糕的程序员
  8. 【记】接口自动化测试,完整入门篇
  9. 使用「Bartender」创建简洁的Mac菜单栏
  10. 三级分销系统源码如何上传?
  11. 如何快速提取手机微信数据?
  12. 鹏业安装算量材料表不能复制问题解答
  13. 电脑可以登录QQ但是却无法打开网页
  14. c语言里10h代表什么,bios 10h中断是什么意思啊?
  15. 6m缓存和8m缓存差距_6张图,就可以了解1660Ti与RX590的差距
  16. Packet Tracer - 排除 VLAN 间路由故障
  17. 获取微信小程序页面路径【保姆级教程】
  18. Java 练习题:求平方根
  19. 国密SM4算法(简介与C源码)
  20. 300题目 第10讲 积分等式与积分不等式

热门文章

  1. 深度学习算法原理_用于对象检测的深度学习算法的基本原理
  2. 自我接纳_接纳预测因子
  3. leetcode 147. 对链表进行插入排序
  4. leetcode104. 二叉树的最大深度(dfs)
  5. leetcode106. 从中序与后序遍历序列构造二叉树(dfs)
  6. PS图像菜单下计算命令
  7. [建议]我对软工有话说(上)
  8. 小明系列问题――小明序列(LIS)
  9. Android控件捕获点击事件的范围
  10. Struts2学习笔记1