转载于知乎var a = [1,2,3]; var b = a; a = [4,5,6]; alert(b); //[1,2,3] 面试时被问到这样一个问题,竟然从来没试过... 当时直接的理解,数组是引用类型,应该是传递的是引用,so b也是[4,5,6],于是错了.js数组传递是跟基本类型一样创建副本吗?我又做了如下测试: var a = [1,2,3]; var b = a; a.pop(); alert(b); //[1,2] 这样好像又是引用传递了? 晕了 答案: a = [4,5,6