JavaScript的数据类型一共有八种
分别为:Number类型、String类型、Boolean类型、Null类型、Undefined类型、Object类型、BigInt类型、Symbol这8种数据类型
其中biglnt是谷歌67版本中出现的一种。 是指安全储存,操作大整数(但很多人不把这个作为一个类型)
Symbol:Symbol是ES6新增的一种数据类型。这种类型的对象用不相等,即使创建的时候传入相同的值,可以解决属性名冲突的问题。
Object中也包含了几种类型:Data,function,Array(这三种比较常用)
JavaScript的数据类型又分为两种
1.基本数据类型
基本数据类型也称为简单数据类型,包含7种类型,分别是Number 、String、Boolean、BigInt、Symbol、Null、Undefined。
2.引用数据类型
引用数据类型也叫复杂数据类型,通常用Object代表,普通对象、数组、正则、日期、Math数学函数都属于Object。
区别:
1.基本数据类型和引用数据类型的主要区别在于在内存中的数据存储的方式不同。
1)基本数据类型是直接存储在栈中的简单数据段,占据空间小,大小固定,属于被频繁使用的数据。栈是存储基本数据类型和执行代码的空间。
2)引用数据类型是存储在堆内存中,占据空间大,大小不固定。引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址,当解释器寻找引用值时,会检索其在栈中的地址,取得地址后从堆中获得实体。
2 .不同内存分配机制也带来了不同访问机制
基本数据类型可以直接访问。
引用数据类型是访问的引用地址,根据引用地址找到堆中实体。
引用类型不可以直接访问堆内存空间的位置及直接操作堆内存空间,只能操作对象在栈内 存中引用地址。
3 .复制变量时的不同
基本数据类型:var a = 10; var b = a ;将原始值得副本赋值新变量
引用数据类型:var obj ={name:’张三’} var objs = obj;将引用地址赋值给新变量