#javascript #строки #сравнение
Почему при сравнении двух строк "70px" и "622px" первое значение оказывается больше?
Ответы
Ответ 1
Как сравнить числа, содержащиеся в строках, рассказано в ответе @11111000000. А я расскажу о том, почему такое происходит при сравнении самих строк. Строки сравниваются с помощью лексикографического порядка. Лексикографически "70px" больше, чем "622px" (т.к. символ "7" идет после символа "6"). Лексикографический порядок — отношение линейного порядка на множестве слов длины n над некоторым упорядоченным алфавитом ∑. Своё название лексикографический порядок получил по аналогии с сортировкой по алфавиту в словаре. Слово a предшествует слову b (aОтвет 2
просто никогда не сравнивайте строки иначе, нежели == и != . Почему это так работает, знать конечно познавательно, однако на практике: parseFloat('70px', 10) - и только так. Не parseInt, ибо в CSS размеры могут быть с дробными долями.Ответ 3
Символ '7' больше символа '6', поэтому первая строка больше второй строки. Сравнение происходит посимвольно в соответствии с кодами символов.
Комментариев нет:
Отправить комментарий