#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.
Комментариев нет:
Отправить комментарий