1、基本数据类型:
String Number Boolean Null Undefined
2、引用数据类型:
Object
3、 基本数据类型的数据,变量是直接保存的它的值。
-变量与变量之间是互相独立的,修改一个变量不会影响其他的变量。
-js中的变量是保存到栈内存中的,基本数据类型的值是直接在栈内存中存储, 将一个变量a赋值给另一个变量b,实际在存储时是将变量a的值直接赋值给b,所以改变变量a的值,并不会影响b的值,他俩是相互独立的。
4、 引用数据类型的数据,变量是保存的对象的引用(内存地址)。
-如果多个变量指向的是同一个对象,此时修改一个变量的属性,会影响其他的变量。
-对象是保存到堆内存中的,每创建一个对象(每出现一个new),就在堆内存中开辟一个新的空间,在栈内存中变量保存的是对象的内存地址,所以将一个对象a赋值给另一个对象b时(即两个变量保存的是同一个对象的引用),实际上在栈内存中将a内存地址赋值给了b,所以当a发生变化时,b也会发生变化,因为他们对应的是同一个东西
注意:当使对象b变量的值设置为null时,只是使b与堆内存不再建立联系,但a还建立联系,此时b变量值的改变不会影响a
5、比较两个变量时,对于基本数据类型,比较的就是值,
对于引用数据类型比较的是地址,地址相同才相同(当两个对象内容一模一样,但地址不同时,他也会返回false)