1. 数据类型分类
基本数据类型:
String,Boolean,Number,undefined,null,Symbol
引用数据类型:
Object,Functoin,Array,RegExp ......
2. 使用typeof和instanceof 判断数据类型
1.使用typeof判断基础类型,使用instanceof判断引用类型
2.typeof无法区分数组和对象,必须通过instanceof来区分
3.对未声明或未赋值的变量,typeof的检测结果为undefined
image.png
3. 数据类型和栈堆的关系
堆和栈都是存放临时数据的内存空间
基本数据类型 的值保存在栈内存中的简单数据段,按值访问。
引用数据类型的值是指保存在堆内存中的对象,由于对象的大小不固定不能保存在栈内存中,然而内存地址的大小是固定的,故可以将其保存在栈内存中,也就是说:变量在栈内存中保存的数据实际上是指向堆内存中保存的对象的指针。
基本数据类型只要一块单独的内存,用于存储实际的数据。
引用类型需要两段内存:1.引用存放在栈中 2.实际数据在堆中。如下图:
image.png
4. 值传递 引用传递
值传递:对于基础类型(如string,boolean,number等),成员之间赋值当改变其中某一成员,其他成员不受影响
image.png
引用传递:对于引用类型(如object,array等),成员之间赋值当改变其中某一成员,其他成员也会一起改变
image.png
网友评论