Что выведет код Middle Типы и приведение обновлено

Сравнение строк

Вопрос

Что выведет код? По строке на каждый вывод.

console.log(['б', 'а', 'ё', 'е'].sort().join(','));
console.log(['б', 'а', 'ё', 'е'].sort((x, y) => x.localeCompare(y, 'ru')).join(','));
console.log('a' < 'B');

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: а,б,е,ё, а,б,е,ё, false. Почему так Сравнение по кодам ставит все заглавные раньше строчных и ломает алфавит для кириллицы.

Что выведет

а,б,е,ё
а,б,е,ё
false

Разбор

Почему так

Сравнение по кодам ставит все заглавные раньше строчных и ломает алфавит для кириллицы. Для пользовательских списков нужен localeCompare с локалью или Intl.Collator.

Вывод

а,б,е,ё
а,б,е,ё
false

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме