art13, спасибо за ссылку. Это еще я понять могу. Тут на мой взгляд все логично - сравниваем элементы и возвращаем позицию сдвига.
function obr(a, b) {
if(a < b) return – 1;
if(a == b) return 0;
if(a > b) return 1;
}
а вот это дело не понятно.
function(a, b) {return a - b;}
Ну, допустим, a = 7, b = 14, следовательно, но a - b это 7 - 14 = -7 и что? Сдвигать на -7? Впрочем, есть одно предположение, сейчас его проверю

Думается мне, что метод .sort распознает только три значения: -1, 0 и 1. А если к нему поступают другие, то он автоматически их "подгоняет".
Да, кажется, так оно и есть
