Страницы

Поиск по вопросам

среда, 29 января 2020 г.

сравнение строк “2” > “15” = true

#javascript #javascript_faq


Прочитал мануал по поводу строк:
Посимвольное сравнение

Но не до конца понял суть сравнения: 

"2" > "15"// Выдает true


Почему выдает true?

Если сравнивать по символам, то 

"2" > "1"// true


Почему так?
    


Ответы

Ответ 1



Непосредственно сравнение срок происходит посимвольно - первый с первым, второй со вторым: Если первая буква первой строки больше – значит первая строка больше, независимо от остальных символов: Оператор нестрогого равенства == сравнивает по типу переменных. А оператор строгого равенства === сравнивает численный код символа. Т.к. 2 идёт после 1 (имеет больший код к кодировке Unicode), то двойка больше. Больше информации по ссылке: Сравнение строк

Ответ 2



Немного спецификации, выдержка алгоритма по сравнению строк: для случая x "15" Строки не являются префиксами друг друга. k == 0, m = "2"[0] == '2' = 50 n = "15"[0] == '1' = 49 50 > 49 -> результат сравнения true.

Комментариев нет:

Отправить комментарий