@Wamsmer

Как объяснить поведение сравнения кириллицы и чисел?

Столкнулся с непонятным поведением сравнения разных типов при сортировке массива, где присутствуют строки кириллицей:
При сравнении с числом любое русское слово получается не больше, не равно и не меньше.
При сравнении слов, написанных латиницей, сортировка происходит, как и ожидается (сначала цифры, затем строки).

Вроде сравнение с числом должно происходить по значению юникода первого символа строки, но не происходит. Почему так?

Код с примером здесь: https://codepen.io/wansmer/pen/yLyOJEQ
  • Вопрос задан
  • 56 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
По стандарту JS, если хотя бы одно из сравниваемых значений не является строкой, то оба операнда приводятся к числовому типу. При этом строка, не представляющая собой корректное число, переводится в NaN. Любые сравнения с NaN дают false.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@d-stream
Готовые решения - не подаю, но...
сижу, ковыряюсь отверткой в ухе, а тут бац в телевизоре звук пропал...

Первая же строчка из поисковика про неявное сравнение: https://habr.com/ru/company/ruvds/blog/347866/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы