var a = [1,2];
var b = a;
b[0] = 3;
alert(a) //3,2
这时候改变变量b,a的值跟着也变了,这是因为js的数组和对象都是通过引用来赋值的;number和字符串是按照普通的方式赋值。
解决方法
1. var a = [1,2];
var b = a.slice(0);
b[0] = 3;
alert(a) //1,2
2. var a = [1,2];
var b = a.concat(0);