主要总结下普通类型和对象的存储方式。
JS目前一共有7种数据类型,6种为基本类型(Number,String,Boolean,Null,Undefined,Symbol)。这六种数据类型是存储在栈(Stack)中的,一行一行存储。
最后一种复杂数据类型Object是存储在堆(Heap)中的,通过引用的方式赋值给变量。
由此也引出了一个概念,浅拷贝和深拷贝。
a.基本类型的变量赋值,就是深拷贝。下方代码中b值被改动,并不会影响a值。
var a=1;
var b=1;
b;//1
浅拷贝则是简单的值的传递,a值传递给b,b值改动时,a值也会改动,以对象为例:
var a={c:1}
var b=a;
b.c=2;
a//{c: 2}