Этот метод сравнивает строки и возвращает число (отрицательное или положительное), которое говорит, является ли данная строка меньше, равной или больше, чем строка переданная как аргумент, но в зависимости от языка.
Язык определяется настоящим местоположением или вы можете указать его, как второй аргумент:
'a'.localeCompare('à') //-1
'a'.localeCompare('à', 'it-IT') //-1
Очень часто его используют для сортировки массивов:
['a', 'b', 'c', 'd'].sort((a, b) => a.localeCompare(b))
Где бы вы обычно использовали:
['a', 'b', 'c', 'd'].sort((a, b) => (a > b) ? 1 : -1)
Только тут мы можем это сделать с помощью localeCompare(), который позволит нам работать с алфавитами по всему миру.
Объект переданный как третий аргумент, может быть использован для передачи дополнительных условий. Посмотрите все возможные значения для этих условийна MDN.