js 中 数据类型分为基本类型与引用类型。
JS的基本类型共有七种:bigInt(bigInt是一种内置对象,是处symbol外的第二个内置类型)、number、string、boolen、symbol、undefined、null。引用类型有对象(object)包括基本的对象、函数(Function)、数组(Array)和内置对象(Data等)。
方法一 判断基础类型 可以用typeof 方式,如 typeof 2 返回number
方法二 判断引用类型 需要用到 Object.prototype.toString.call(xxx)的形式,返回“[object 类型]'的形式。
如下:
Object.prototype.toString.call({a:1})// "[object Object]"
Object.prototype.toString.call([1,2])// "[object Array]"
Object.prototype.toString.call(newDate)// "[object Date]"
Object.prototype.toString.call(function(){})// "[object Function]"
Object.prototype.toString.call(arguments)// "[object Arguments]" //arguments 为函数的参数对象
ps: 为什么不直接调用toString方法,而是接用Object的原型对象prototype的toString
因为 只有object对象形式才能返回“[object Object]'的形式,
其它,例如[1,2,4].toString() 返回‘1,2,4'这样的字符串,
const f = function() {}
f.toString() // 返回"function() {}"
方法三、obj instanceof Object ,可以左边放你要判断的内容,右边放类型来进行JS类型判断,只能用来判断复杂数据类型,因为instanceof 是用于检测构造函数(右边)的 prototype 属性是否出现在某个实例对象(左边)的原型链上。
[1,2] instanceof Array // true
(function(){}) instanceof Function // true
({a:1}) instanceof Object // true
(newDate) instanceof Date// true
obj instanceof Object方法也可以判断内置对象。