学无先后,达者为师

网站首页 前端文档 正文

使用toString判断所有js数据类型

作者:白菜new 更新时间: 2022-01-07 前端文档


前言

由于JavaScript是一种解释型编程语言,声明变量并不需要定义类型,变量可以随时更改存储数据的类型。

我们都知道 typeof 可以判断数据类型,但遇到 null 、array等其他数据类型时,就需要用到更为详细的toString了

一、toString

toString() 是 Object 的原型方法,调用该方法,默认返回当前对象的[[Class]]。其格式为[object Xxx] ,其中 Xxx 即为目标的类型

二、上代码

function typeOf(target){
	// Object.prototype.toString.call(target) 通过此便可获得目标的[[Class]]
	// 再由正则匹配 就能获得目标的类型
	// toLocaleLowerCase()将其转换为小写 留到下面扩展用
	return /^\[object (\w+)]$/.exec(Object.prototype.toString.call(target))[1].toLocaleLowerCase()
}
//原生typeof
typeOf(new Set())  //object
typeof(null)      // object
typeOf(new Set()) //set
typeOf(null)     //null

自此,利用 toString 封装的 typeOf 函数便能判断所有的js数据类型了。

三、扩展

判断变量为空

function empty(target){
   if(arguments.length > 1){
       // 多个值的时候判断都为空
       return [...arguments].every(v => empty(v))
   }else {
       switch(typeOf(target)){
           case 'array':
           case 'string':
           case 'object': return Object.keys(target).length === 0
           default: return target == null
       }
   }
}

原文链接:https://blog.csdn.net/qq_43850819/article/details/116272799

栏目分类
最近更新