值拷贝和对象引用

栈数据结构:先进后出,后进先出

75efbc696df23848b9838d72ea37677a.png

堆数据结构:数据没有固定顺序,在堆操作在堆操作数据可以任何顺序操作


1.png

实例:


p3.png
var num =10;
var bol =true;
var str ="abc”;
var obj = new Object();
var arr = ['a','b','c'];
var person = new Person(100,"jxl",22);

1.基本数据类型:
Number,boolean,string,Undefined, Null,放在栈内存中
简单数据段 数据大小确定 内存空间自动分配

2.对象:
object ,arr构造函数对象
对象的名称存储在栈,对象的内容属性都在堆区

值拷贝:

var a = 10;
var b = a;
console.log(a = b);
//拷贝的是a的值,b是重新开辟的空间

对象引用:

var a =[1,2,3,4,5];
var b =a;
//此时b=[1,2,3,4,5];是在堆中取得a的地址,
b和a共用一个地址,a,b有任何一个数值改变,都会变

例:函数传参---对象引用

 var a = [1,2,3];
 function test(num){
    //相当于num =a;把对象当做参数传递到函数内部,也是对象引用
    //1.如果对参数进行操作,对象也会发生变化
    // num[0]=4;
    // num[1]=5;
    // num[2]=6;
    //2.如果对参数重新赋值,对象不会跟着改变
    // num =[4,5];
}
test(a);
console.log(a);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • JVM内存模型Java虚拟机(Java Virtual Machine=JVM)的内存空间分为五个部分,分别是: ...
    光剑书架上的书阅读 7,545评论 2 26
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,473评论 11 349
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,084评论 18 399
  • 你是否满腹经纶,但在和别人交流时,却不知所云,或者别人根本不知道你在说什么! 你是否明明知道答案,但在回答老师问题...
    踏雪无痕Sunny阅读 2,241评论 0 1
  • “靠!老子起来了!烦死了这个闹钟!”尹天佑起来骂到!“小姨,你是不是坑我?怎么又多了两个?” “还不是怕你起不来噢...
    魔童兔兔TUT阅读 3,421评论 0 0