数组的引用

var arrA=[1,2,3,4];
var arrB;
arrB=arrA;//将arrA的引用赋值给arrB
arrB[0]='aaa';
console.log('arrA',arrA);//['aaa',2,3,4]
console.log('arrB',arrB);//['aaa',2,3,4]

var arrC=[1,2,3,4];
var arrD;
arrD=arrC.slice();//用slice()创建新数组,切断两个数组的联系
arrD[0]='ccc';
console.log('arrC',arrC);//[1,2,3,4]
console.log('arrD',arrD);//['ccc',2,3,4]

var arrE=[5,6,7,8];
var arrF=[];
arrF.push(arrE);//将arrE的引用push到arrF
//alert(arrF);//[[5,6,7,8]]
//console.log('arrF[0]',arrF[0]);//[5,6,7,8]
//console.log BUG
//console.log点开arrF的时候才获取arrE
console.log('arrF_BUG',arrF);//[['eee',6,7,8]] 或 [[5,6,7,8]]
console.log('arrE',arrE);//[5,6,7,8]

// document.onclick=function () {
// arrE[0]='eee';
// console.log('arrF',arrF);//[['eee',6,7,8]]
// console.log('arrE',arrE);//['eee',6,7,8]
// }


var arrX=[7,8,9,10];
var arrY=[7,8,9,10];
var arrTemp=[];

document.onclick=function () {
arrTemp.push(arrX.sort(function () {
return Math.random()-0.5;
}));
// arrTemp.push(arrX.sort(function () {
// return Math.random()-0.5;
// }).slice());
console.log('arrTemp[0]',arrTemp[0]);
console.log('arrTemp',arrTemp);
}
// alert(arrX==arrY);//false 对象引用不相等,可以先.toString(),再判断是否相等

//.toString()  将数组转换为字符串,用逗号","连接

原文地址:https://www.cnblogs.com/king2016/p/5766942.html