1.
常见的基本数据类型:Number、String 、Boolean、Null和Undefined。
引用数据类型:对象、数组、函数。
2. 区别:
- 内存分配与访问机制的不同:
1)基本数据类型:存储在栈内存中,可以直接访问到该变量的值。
2)引用数据类型:存储在堆内存中。意思是存储在栈内存中该变量的值是该对象在堆内存中的地址,它相当于一个指针,根据该指针去找到该对象的值,这就是传说中的按引用访问。
- 复制变量时的不同:
1)基本数据类型:将一个变量的值复制给另一个变量时,只是将原变量的副本赋值给新变量,这俩个变量的值是相互独立的。
2)引用数据类型:将一个变量复制给另一个变量时,会把原变量中存储的对象内存地址赋值给新变量,此时这两个变量都指向了堆内存中的同一个对象,他们中任何一个作出的改变都会反映在另一个身上。【浅拷贝】
null和undefined区别
- null 只有一个值,是null,不存在的对象,表示一个空对象指针
- undefined只有一个值,是undefined。没有初始化。undefined是从null中派生出来的
- 简单理解就是:undefined是没有定义的,null是定义了但是为空!