一、js中数据类型分为基本数据类型引用数据类型
1.基本的数据类型: number string bool null undefined symbal(es6 定义唯一的)
2.引用的数据类型:object array date fuction
二、区别:存储不一样
//基本数据类型是原始值,直接存贮在栈内存中,引用数据类型,他的值是在堆内存
开辟了一块新的内存空间,
// 我们通过变量来复制一个引用数据类型的时候其实只是把这个开辟的内存空间的
地址进行了一个赋值
1.Typeof: 了解!!
基本数据类型中:Number,String(字符串),Boolean(布尔值),undefined(未定义)
以及引用数据类型中Function(函数) ,可以使用typeof检测数据类型,分别返回对应
的数据类型小写字符。
另:用typeof检测构造函数创建的Number,String,Boolean都返回object
基本数据类型中:null 引用数据类型中的:Array,Object,Date,RegExp。
不可以用typeof检测。都会返回小写的object
2.instanceof(音四疼恩斯饿肤)
除了使用typeof来判断,还可以使用instanceof。instanceof运算符需要指定一个构造函数,
或者说指定一个特定的类型,它用来判断这个构造函数的原型是否在给定对象的原型链上。
3.constructor
constructor是prototype对象上的属性,指向构造函数。根据实例对象寻找属性的顺序,
若实例对象上没有实例属性或方法时,就去原型链上寻找,因此,实例对象也是能使用
constructor属性的
4.使用Object.prototype.toString.call()检测对象类型
可以通过toString() 来获取每个对象的类型。为了每个对象都能通过
Object.prototype.toString() 来检测,需要以 Function.prototype.call()
或者 Function.prototype.apply() 的形式来调用,传递要检查的对象作为第一个参数,
称为thisArg