javascript引用和赋值

 1 var  arr1=[1,2,3,4];//数组1被创建  指向物理内存的一个地址
 2     var  arr2=arr1;//数组arr2  被赋值为arr1(引用了arr1);
 3     //alert(arr1);//1,2,3,4
 4     //alert(arr2);//1,2,3,4
 5     /*
 6         arr2.push(5) arr2变为1,2,3,4,5  
 7         由于arr2和arr1  是同一个物理地址的引用,所以 arr1同时被改变
 8     */
 9     arr2.push(5);
10 
11     //alert(arr1)//1,2,3,4,5
12     //alert(arr2)//1,2,3,4,5
13     var arr1=['a','b','c','d']//arr1被出新赋值
14     /*
15         由于arr1被重新赋值,相当于重新在物理地址里重新生成了位置和原来的无关
16         而arr2还是原来物理地址的引用所以下面的值为
17     */
18     alert(arr1);//a,b,c,d
19     alert(arr2);//1,2,3,4,5