基本类型有五类:number、string、null、boolean、undefined
es6中新增基本类型Symbol和es10中新增基本类型BigInt待后续更新
引用类型有:Object (Array、Date等)除了基本类型外都是引用类型
基本类型有以下特点:
1、值都是不可变的,一些对基本类型做处理的函数都是返回一个新的基本类型
比如一个字符串:
var name='xiaoxiao'
name.toUpperCase()//输出XIAOXIAO
console.log(name)//输出还是‘xiaoxiao’
name.age=24
console.log(name.age)//输出undefined
2、基本类型的比较是值的比较
只有他们的值相等时它们才相等
3、基本类型的变量时存放在栈区的(内存中的栈内存)
4、简单赋值:从一个基本类型变量到另一个基本类型变量赋值时,会在改基本变量上创建一个新值,然后把该值复制到为新变量分配的位置上
引用类型特点:
1、引用类型的值是可变的,引用类型可以拥有属性和方法,并且可以动态改变
2、引用类型的值是同时保存在栈内存和堆内存中的对象
3、当从一个变量向另一个变量赋值引用类型的值时,同样也会将存储在变量中的对象的值复制一份放到为新变量分配的空间中保存在变量中的是对象在堆内存中的地址,所以,与简单赋值不同,这个值的副本实际上是一个指针,而这个指针指向存储在堆内存的一个对象。那么赋值操作后,两个变量都保存了同一个对象地址,则这两个变量指向了同一个对象。因此,改变其中任何一个变量,都会相互影响