在js中,数据类型可以分为原始类型和引用类型
原始类型:number、string、Boolean、undefined、null、symbol(ES6新增)bigint,并且原始值在内存的分配位置是在栈中(栈特点是先进后出,先进来的永远在栈底)
例如:变量a=1,在栈中的分配
分配一个空间 | 对应值 |
---|---|
1001 | |
1002 | |
a | 1 |
当变量b=a(值的拷贝),此时内存在栈中的存储方式
分配一个空间 | 对应值 |
---|---|
1001 | |
b | 1 |
a | 1 |
当a=2,并不会影响b的值
注意:原始值是不能够被改变的,表面上a能够被重新赋值,是因为重新给a分配了一个内存空间,旧a变成null,值不再是1了
分配一个空间 | 对应值 |
---|---|
新a | 2 |
b | <