reverse()是对原数组本身的元素进行翻转,它不会产生新的数组,reverse()返回值也是原数组本身的引用地址。你三个console.log()所输出的都是同一个数组对象。要产生新的数组需要对原数组复制一下再翻转。var arr2 = arr1.slice().reverse();