#简单数据类型和复杂数据类型:
##一:分类:
:简单数据类型:
5种:number,string,bool,undefined,null
:复杂数据类型(也称引用数据类型):
3种:object,Array,Function
##二:简单理解:
A:简单数据类型存放在栈内存中,
B:复杂数据类型 是将地址(地址)存放在栈内存中。地址指向堆内存,也就是说,复杂复杂类型的数据其实是存在堆内存中。
三:图片附加理解:
简单数据类型:
①:var a=1
②:var a=2
③:var b=a
小结:在简单数据类型中,每次声明都会重新在栈内存中开拓新内存,当var b=a时,a的值不会影响到b的值。
复杂数据类型:
①:var a={n:1}
②:var a={n:2}
③:var b=a
小结:
①:var a={n:1}
地址在栈,内容在堆
②:var a={n:2}
这时,a的地址指向堆中的另一个内存中。
就算var c={n:1}也会新申请一块堆内存地址,因为引用类型只有地址相同才相同
③:var d=c
c将内容给到了d,它们指向的是同一个内容。如果c发生改变,d也会随之改变。