JavaScript_数据在内存的存储方式&不同数据类型作为参数的区别

数据在内存中的存储方式

栈:存储 变量名 和 基本数据类型

堆:存储 复杂数据类型

	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跟着改变↑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值