js判断数据类型方法汇总

JavaScript06

js判断数据类型方法汇总,第1张

在前端开发中我们经用到的操作有很多,比如判断数据类型、去重、深拷贝等等,最近也在整理常用的知识点,便于积累和后期查看,这里呢我对js中数据类型判断方法以及判断结果进行了汇总。

一、汇总表格

二、4种方式说明

1、typeof

对于原始类型:除了null其它都可以显示正确

对于对象的话:除了function  其它均显示为 “object”

2、 instanceof : 内部机制是通过原型链来判断的  方法是  a instanceof b  (a是不是b的实例)

针对于对象:可以很明显的区分Array、Date、regExp,但是他们都是Object的实例。所以,instanceof 最好是用来判断两个对象是否属于实例关系, 而不是判断一个对象实例具体属于哪种类型。

3、constructor a.constructor===Function / Symbol / String / Number / Boolean / Object / RegExp / Date

对于原始类型:无法处理null、undefined(这两个会报错) 

对于对象:均可以判断

函数的 constructor 是不稳定的,这个主要体现在自定义对象上,当开发者重写 prototype 后,原有的 constructor 引用会丢失,constructor 会默认为 Object

4、 toString

toString() 是 Object 的原型方法,调用该方法,默认返回当前对象的 [[Class]] 。这是一个内部属性,其格式为 [object Xxx] ,其中 Xxx 就是对象的类型。

对于 Object 对象,直接调用 toString()  就能返回 [object Object] 。而对于其他对象,则需要通过 call / apply 来调用才能返回正确的类型信息。

可以判断所有类型: Object.prototype.toString.call(xxx)  对向的话可以直接使用 Object.toString(obj)

三、整理一个可以判断任意数据类型的方法

注意:在es6中用class定义类的时候,通过typeof判断出的结果是Function,而通过Object.toString判断的结果是Object。js中class应该是Function类型,所以这点需要注意。

function getType(para) {  //判断任意数据类型

    const type = typeof para

    if (type === "number" && isNaN(para)) return "NaN"

    if (type !== "object") return type

    return Object.prototype.toString

        .call(para)

        .replace(/[\[\]]/g, "")

        .split(" ")[1]

        .toLowerCase()

}

四、小结

js中数据类型判断的方式有4种:typeof、instance、constructor、toString,typeof简单方便,比较适合原始类型判断,toString繁琐一点但是判断全面,所以这两个的结合判断我是比较推荐的。

js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Undefined,Null),和一种复杂数据类型(Object)。

1、Number类型

Number类型包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后面至少有一位数字)两种值。

2、String类型

在JS中字符串需要使用引号引起来。使用双引号或单引号都行,但是不要混着用。引号不能嵌套,双引号不能放双引号,单引号不能放单引号。

3、Boolean类型

该类型只有两个值,true和false。

4、Undefined类型

只有一个值,即undefined值。使用var声明了变量,但未给变量初始化值,那么这个变量的值就是undefined。

5、Null类型

null类型被看做空对象指针,null类型也是空的对象引用。

6、Object类型

js中对象是一组属性与方法的集合。这里就要说到引用类型了,引用类型是一种数据结构,用于将数据和功能组织在一起。引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法。

在JS的学习与工作中,搞清楚相关数据类型是基础中的基础,平均一百家公司面试前端工程师的时候九十九家都会问,请你简单举例一下JS的数据类型,于是菜狗我就将对此进行一些自己粗浅的总结为自己留作笔记同时为各位想要学习的同学提供小小的帮助。

首先,我们要明白,在JS中,数据类型分为一下两种:

基础数据类型分为七种

①Number 数字型 (包含所有的整数,浮点数,负数等)

②String 字符串型 (包含任意文本)

③boolean 布尔型 (仅有两种类型,ture与false)

④Undefined 未定义 (仅有一种,undefined)

⑤Null 空/不存在 (仅有一种,null)

⑥Symbol (实现唯一标识)

对此进行简单的举例

⑦BigInt(任意精度整数)(将与ES10中出现)

对此数据类型存在进行简单解释

BigInt 通过数字加n的方法来表示,支持二进制,八进制,十六进制

以下写法结果均为转换为字符串后得而结果,BigInt类型转换字符串后不会再带着n

Ⅰ.通常写法

Ⅱ .十六进制

Ⅲ.八进制(注意区分数字0与字母o)

Ⅳ. 二进制

引用数据类型共有三种

①Array类型 (数组型)

②Object类型 (对象型)

③Function类型 (函数/方法)

以上就是十种JS中的数据类型,如有错误,欢迎指正。

如果本文能帮到你,那么菜狗很开心,大家一起 加油!