Por que a classificação de uma matriz JS de números com <work?

Ao classificar uma matriz de números em JavaScript, usei acidentalmente< ao invés dethe usual- - mas ainda funciona. Eu quero saber porque

Exemplo

var a  = [1,3,2,4]
a.sort(function(n1, n2){
    return n1<n2
})
// result is correct: [4,3,2,1]

E uma matriz de exemplo para a qual isso não funciona (obrigado pelo exemplo de Nicolas):

[1,2,1,2,1,2,1,2,1,2,1,2]

questionAnswers(5)

yourAnswerToTheQuestion