30秒到达战场
首先第一个问题,是js除开基本类型的引用传递,所以在var a = [1,2,3]; //a存储的是一个内存地址x,该地址存放的内容是[1,2,3]var b = a; //将a所指向的内存地址x赋值给bb.push(4); //在内存地址x指向的数据中增加元素4其过程是 x => [1,2,3] x => [1,2,3,4] "=>"表示指向内存第二个问题和第一个问题的区别在于对于b的再次赋值b = [1,2,3,4]; //清空原有内存地址x中存放的数据,重新赋值为[1,2,3,4]这段代码的过程: x => [1,2,3] x => null x => [1,2,3,4]在这个过程中,因为a b都是指向内存地址x,所以不管是a还是b重新赋值后,改变的都是该内存地址的数据,所以a=x=>[1,2,3,4]b=x=>[1,2,3,4]