数据类型分为:基本数据类型和引用数据类型
基本数据类型:string字符串; number数字; boolean布尔值; undefined 未定义; null空; symbol唯一值; bigint大数字
引用数据类型:object(基类)对象;Array数组; function函数; date日期; regExp正则;
基本数据类型和引用数据类型区别:
基本数据类型是原始值,直接存贮在栈内存中,引用数据类型,他的值是在堆内存中开辟了一块新的内存空间,我们通过变量来复制一个引用数据类型的时候其实只是把这个开辟的内存空间的地址进行了一个赋值
数据类型判断:
1.typeof一般用来判断基本数据类型 不能判断引用数据类型 会返回小写的字符串数据类型
语法:typeof 要判断的数据类型=="string"
var b=0;
var c={};
console.log(typeof b == "number");//true
console.log(typeof b == "string");//false
console.log(typeof b);//number
console.log(typeof c);//Object
2.instanceof
语法: (要判断的数据类型) instanceof [Array/object/Function ]
var a={};
console.log(a instanceof Array);//false
console.log(a instanceof Object);//true
3.constructor 构造函数
语法: 要判断的数型.constructor==Array
var a=[];
console.log(a.constructor==Array);//true
console.log(a.constructor==Object);//false
4.Object.prototype.toString.call()
语法:Object.prototype.toString.call(要判断的数据类型) 返回值 "[object 数据类型]"
拓展:js中所有的可以调用call方法都可以认为是一个“可执行对象”
var a=new Date()
console.log(Object.prototype.toString.call(a));//[object Date]
5.$.type() 最全的数据类型==>"string""number""object"
语法:$.type(要判断的数据类型)
//5.$.type(要判断的数据类型) 最全的数据类型==>"string""number""object"
var a=0;
var b=[];
var c={};
console.log($.type(a));//number
console.log($.type(b));//array
console.log($.type(c));//object