数据在内存中的存储方式
栈
栈:存储 变量名 和 基本数据类型
堆
堆:存储 复杂数据类型
var num = 10;
var num1 = num;
num = 20;
console.log(num,num1);
//10 20
复杂数据类型的存储:
当有多个变量指向同一个地址的时候,无论通过哪个变量去修改地址中的数据,其他的变量去使用的时候得到的都是被修改过后的数据
(共享同一个地址)
var obj = {name: 'aaa'};
var obj1 = obj;
obj.name = 'bb';
console.log(obj, obj1);
//bb bb
不同数据类型作为参数的区别
当一个函数传递一个复杂数据类型作为参数的时候,在这个函数中改变这个形参的值得时候,那么函数外面访问传递的这个参数 也会跟着改变
var num = 10;
function fun(n){
n += 10;
console.log(n);
}
fun(num);//20
console.log(num);//10
num不会跟着改变↑
var obj = {};
function fun(n){
n.name = '张三';
console.log(n);
}
fun(obj);//name:'张三'
console.log(obj);//name:'张三'
obj跟着改变↑