JavaScript判断数据类型
1、定义检测数据
const num = 123;
const str = 'aaa';
const bool = true;
const arr = [1, 2];
const json = {name:'aaa', num:111};
const func = () => console.log('function');
const und = undefined;
const nul = null;
const date = new Date();
const reg = /[a-z]/;
const error= new Error();
2、typeOf()检测
typeof
对于原始类型(除了Null)是可以检测到的,但是引用类型就统一返回object
console.log(typeof num, // numbertypeof str, // stringtypeof bool, // booleantypeof arr, // objecttypeof json, // objecttypeof func, // function typeof und, // undefined typeof nul, // objecttypeof date, // objecttypeof reg, // objecttypeof error // object
);
arr, json, nul, date, reg, error 全部被检测为object类型,其他的变量能够被正确检测出来。当需要变量是否是number, string, boolean, function, undefined, json类型时,可以使用typeof进行判断。其他变量是判断不出类型的,包括null。
3、instance of()检测
instance of
用于检测构造函数的原型是否出现在某个实例函数的原型链上
console.log(num instanceof Number, // falsestr instanceof String, // falsebool instanceof Boolean, // falsearr instanceof Array, // truejson instanceof Object, // truefunc instanceof Function, // trueund instanceof Object, // falsenul instanceof Object, // falsedate instanceof Date, // truereg instanceof RegExp, // trueerror instanceof Error // true
)
4、Object.prototype.toString.call()检测
最好的方法是使用 Object.prototype.toString
方法,它可以检测到任何类型,返回的结果是[object Type]
的形式,基本可以实现所有类型的检测,我们用下面的代码来演示一下。
//实现一个检测类型的公共接口
checkType = data => Object.prototype.toString.call(data);//根据自己的需求进行扩展,记住类型的首字母要大写
Object.prototype.toString.call(num); // "[object Number]"
Object.prototype.toString.call(str); // "[object String]"
Object.prototype.toString.call(bool); // "[object Boolean]"
Object.prototype.toString.call(arr); // "[object Array]"
Object.prototype.toString.call(json); // "[object JSON]"
Object.prototype.toString.call(func); // "[object Function]"
Object.prototype.toString.call(und); // "[object Undefined]"
Object.prototype.toString.call(nul); // "[object Null]"
Object.prototype.toString.call(date); // "[object Date]"
Object.prototype.toString.call(reg); // "[object RegExp]"
Object.prototype.toString.call(error); // "[object Error]"
JavaScript判断数据类型相关推荐
- JavaScript判断数据类型的方式
JavaScript判断数据类型的方式 js中的数据类型有哪些? 基本数据类型:number.string.boolean.null.undefined.symbol以及未来ES10新增的BigInt ...
- JavaScript 判断数据类型
JavaScript 判断数据类型 首先JavaScript基本数据类型有:number null undefined string boolean es6以后还新增了bigint和symbol (上 ...
- JavaScript判断数据类型的方法
JavaScript判断数据类型的方法 1 数据类型有哪些? 2 判断JavaScript数据类型的方法 2.1 typeof 2.2 instanceof 2.3 constructor 2.4 t ...
- JavaScript判断数据类型是不是数组
JavaScript判断数据类型是不是数组 1.Array.isArray(es6 新增) 在这里插入代码片 Array.isArray([]) true Array.isArray({}) fals ...
- JavaScript 判断数据类型的方法
文章目录 1.javascript 中的数据类型 2.`typeof` 返回 变量的数据类型 3.`instanceof ` :复杂数据类型的判断 3.1.instanceof 原理分析(初学者跳过) ...
- JavaScript学习总结(六)——JavaScript判断数据类型总结
最近做项目中遇到了一些关于javascript数据类型的判断处理,上网找了一下资料,并且亲自验证了各种数据类型的判断,在此做一个总结吧! 一.JS中的数据类型 1.数值型(Number):包括整数.浮 ...
- javascript 判断数据类型的几种方法 1
1.typeof 类型判断 缺点:无法区分null .对象.数组,Map,Set,WeakMap,WeakSet.RegExp等 注意:通过构造函数创建的变量typeof 后是都是object var ...
- JavaScript判断数据类型有几种方法,以及它们的区别
JavaScript有五种数据判断类型方法: typeof instanceof constructor Object.prototype.toString.call()
- javaScript中判断数据类型的方法
目录 一.javaScript数据类型 二.javaScript判断数据类型的方法 1.使用typeof 2.使用instanceof 3.使用Object.prototype.toString.ca ...
最新文章
- 加载部分神经网络预训练参数后改写网络的方法
- 用GrabCut进行前景检测(对书中代码进行改进)Python
- P8实战(四):多种分布式锁实现
- epoll为什么比select和poll效率更高
- [云框架]KONG API Gateway v1.5 -框架说明、快速部署、插件开发
- 【Pytorch神经网络理论篇】 31 图片分类模型:ResNet模型+DenseNet模型+EffcientNet模型
- 华尔街顶级大师胡立阳名言
- c 抄了java 多少东西,几款Java开发者必备常用的工具,准点下班不在话下
- GL和DX中关于纹理操作(包括多重纹理)与混合的问题
- PHP亿乐社区源码一比一高仿全开源源码
- 往事如烟 - 归去来
- 什么是CTP程序化交易:系统入门
- ubuntu桌面图标不显示问题
- sql中exist与in 的区别
- 100个python算法超详细讲解:农夫过河
- python 降序排列
- 2020-8-15 无线充电原理和注意事项 WCP/铁氧体
- HDMI协议解析-从软硬件角度分析
- 如果企业微信不用了怎么解绑手机?
- 软件测试面试题(带答案)
热门文章
- nyoj--61 传字条(一)(多线程dp)
- 【微信小程序云开发】笔记
- 曾经对程序员最好的公司,倒下了
- java中resulttype,深入理解Mybatis中的resultType和resultMap
- Namo for Mac(DNS服务器配置工具)
- 1、CentOS 安装 Java JDK
- NVIDIA Xavier NX的Intel Realsense双目相机(T265+D435i)环境搭建
- “键盘侠”比电销客服还敬业
- 网络攻防实战研究 漏洞利用与提权读书笔记一
- Error when loading the SDK: 发现了以元素 'd:skin' 开头的无效内容。此处不应含有子元素。