博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS学习笔记(一):数据类型判断
阅读量:7114 次
发布时间:2019-06-28

本文共 1763 字,大约阅读时间需要 5 分钟。

第一次写文章,写的不好,如有错误,望大神指出,本菜鸟感激不尽

最简单的判断类型的方法

  • typeof 用于判断基本数据类型
  • instanceof 用与判断引用数据类型

下面给出判断结果(大神可忽略)

console.log(typeof '数据类型') //stringconsole.log(typeof 1) //numberconsole.log(typeof true) //booleanconsole.log(typeof undefined) //undefinedconsole.log(typeof Symbol()) //symbolconsole.log(typeof {}) //objectconsole.log(typeof null) // objectconsole.log(typeof function(){}) // objectconsole.log([] instanceof  Array) //true复制代码

由此可见typeof只能判断基本数据类型,那null也是基本数据类型,怎么typeof结果怎么是object,因为null是个空指针,所以typeof结果就成object。通过instanceof判断数组等引用数据类型。

那么除了上述方法,还有其他方法可以判断吗,当然是有的。Object.prototype.toString(),例如:

console.log(Object.prototype.toString.call('数据类型')) //[object String]console.log(Object.prototype.toString.call(1)) //[object Number]console.log(Object.prototype.toString.call(true)) //[object Boolean]console.log(Object.prototype.toString.call(undefined)) //[object Undefined]console.log(Object.prototype.toString.call(Symbol())) //[object Symbol]console.log(Object.prototype.toString.call(null)) //[object Null]console.log(Object.prototype.toString.call(function(){})) //[object Function]console.log(Object.prototype.toString.call([])) //[object Array]console.log(Object.prototype.toString.call({})) //[object Object]复制代码

看到上方得到的结果,是不是发现规律了返回的形式都是:[object xxxx],这里就知道如何去判断了吧。

接下来就写一个判断方法:

function checkType(obj) {    var class2Type = {};    var typeStr = "Boolen,Number,String,Null,Undefined,Symbol,Function,Array,Date,RegExp,Object,Error"    typeStr.split(',').map(item=> {        class2Type["[object " + item + "]"] = item.toLowerCase();    });    return typeof obj === "object" || typeof obj === "function"        ? class2Type[Object.prototype.toString.call(obj)] || 'object' : typeof obj}复制代码

如有错误,欢迎指教,谢谢!!

转载于:https://juejin.im/post/5ada990e518825673123c60d

你可能感兴趣的文章
springMvc源码学习之:利用springMVC随时随地获取HttpServletRequest等对象
查看>>
无限分页
查看>>
iOS - UIColor
查看>>
Java最最常用的100个类排序(非官方)
查看>>
C#如何控制方法的执行时间,超时则强制退出方法执行
查看>>
【Python】模块之subprocess
查看>>
由一条报警信息发现的一系列问题
查看>>
Oracle Executable Binary Mismatch Detected
查看>>
Mysql Innodb中的Linux native异步I/O(一) 内存结构的初始化
查看>>
WM Activate Storage Bin Type Search(十四)
查看>>
nim的引用和指针
查看>>
DirectUI: Become windowless
查看>>
Python 数据结构_队列
查看>>
NAS数据迁移初探
查看>>
打破医院围墙 数字化平台之上的想象力
查看>>
Teradata首席分析官Bill Franks:数据分析变革犹如一场工业革命
查看>>
Linux下安装并使用Java开发opencv的配置
查看>>
AdTime: DMC量身定制的企业数据分析师
查看>>
《数字逻辑设计与计算机组成》一2.3 规范表达式
查看>>
借道大数据 互联网基金再探“蓝海”
查看>>