js的五大基本类型:boolean、undefined、null、string、number 引用类型:object、function
基本类型的数据是存放在栈内存中的,而引用类型的数据是存放在堆内存中的。
基本类型的复制就是在栈内存中开辟出了一个新的存储区域用来存储新的变量,这个变量有它自己的值,只不过和前面的值一样,所以如果其中一个的值改变,则不会影响到另一个。
var num1=5;
var num2=num1;
定义了一个对象其实是在栈内存中存储了一个指针,这个指针指向堆内存中该对象的存储地址。复制给另一个对象的过程其实是把该对象的地址复制给了另一个对象变量,两个指针都指向同一个对象,所以若其中一个修改了,则另一个也会改变。
检测2种变量的函数:
1. Typeof操作符是检测基本类型的最佳工具;
2. 如果变量值是null或者对象,typeof 将返回“object”;
3. Instanceof用于检测引用类型,可以检测到具体的,它是什么类型的实例;
4. 如果变量是给定引用类型的实例,instanceof操作符会返回true;