Como funciona o sort () do Javascript?

Como o código a seguir classifica essa matriz para estar em ordem numérica?

var array=[25, 8, 7, 41]

array.sort(function(a,b){
  return a - b
})

Eu sei que se o resultado do cálculo for ...

Menos que 0: "a" é classificado para ser um índice mais baixo que "b".
Zero: "a" e "b" são considerados iguais e nenhuma classificação é executada.
Maior que 0: "b" é classificado para ser um índice menor que "a".

A função de callback de classificação de matriz é chamada várias vezes durante o curso do tipo?

Se assim for, gostaria de saber quais dois números são passados ​​para a função de cada vez. Eu assumi que primeiro tomou "25" (a) e "8" (b), seguido por "7" (a) e "41" (b), assim:

25 (a) - 8 (b) = 17 (maior que zero, então classifique "b" para ser um índice menor que "a"): 8, 25

7 (a) - 41 (b) = -34 (menor que zero, então classifique "a" para ser um índice menor que "b": 7, 41

Como os dois conjuntos de números são classificados em relação um ao outro?

Por favor, ajude um novato lutando!

questionAnswers(6)

yourAnswerToTheQuestion