const n = [2, 5, 100, 4]
n.sort((a, b) => {
console.log(a, b)
return a - b;
})
// console log
5 2
100 5
4 100
为什么a
是5
,b
是2
等?
在这个问类似问题的问题中
给出的答案相当于:"浏览器解释规范,因此不能保证顺序"。但没能回答问题
标准22.1.3.27没有指定如何调用compare函数:
对obj的[[Get]]和[[Set]]内部方法,以obj作为第一个参数的DeletePropertyOrThrow和HasOwnProperty抽象操作,以及SortCompare(如下所述)执行与实现相关的调用序列