一、数据类型:
1、基本数据类型:String、Number、Boolean、Null、Undefined、Symbol 、BigInt
2、引用数据类型:Object、Array、Function、Date、RegExp
二、检测数据类型的四种方法
1、typeof:
(1)检测方法:变量 typeof 数据类型(a typeof string)
(2)总结:只能准确检测:string、number、boolean、undefined、symbol、function,弊端是其他(object、array、date、regExp、null)都会返回object;
2、instanceof:
(1)检测方法:对象 instanceof 引用数据类型(obj instanceof Object)
(2)总结:instanceof的本质作用是判断某个对象是由哪个类(构造函数)产生的,所以只能用在引用数据类型上,如果在原型上找到返回true,所以用它可以区分是引用类型还是基本类型数据;不能判断null,undefined
3、constructor:
(1)检测方法:数据类型.constructor 数据类型([].constructor == Array)
(2)总结:不能判断null,undefined,其它的都可以,由于类的constructor可以随意更改,此时会存在判断不准确的问题
4、Object.prototype.toString.call():
(1)检测方法:Object.prototype.toString.call(数据类型)
(2)总结:该方法是最准备的检测数据类型的方法。由于Object.prototype.toString()本身允许被修改,所以需要调用Object.prototype.toString.call(arg)来判断arg的类型,call将arg的上下文指向Object,所以arg执行了Object的toString方法。
欢迎加我技术交流QQ群 :811956471