为什么在 javascript 中反向数组等于常规数组?

Why does a reversed array equal a regular array in javascript?

IE 为什么代码会像

var strArr = ["a", "b"];
console.log(strArr.reverse() === strArr ? true : false);

如果颠倒的数组顺序不同则打印真?

因为reverse反转了数组IN PLACE,所以你是在比较数组本身。

实际上 Array.prototype.reverse() 方法将原始数组变形为它的反向数组,然后除此之外 returns 一个 "reference" 到这个变形数组。因此结果和变形后的原始数组变得相同。

如果有人在开发这个方法之前问过我,我会要求保持原样,return 一个反向数组;唉,显然这不是我的决定。