Я играл со сравнением кодов версий в JS и обнаружил, что эти типы сравнений работают последовательно, и я понятия не имею, почему:
"3.4.06" < "3.4.02" (false)
"3.3.01" < "3.4.02" (true)
"3.3.01" > "3.4.02" (false)
"3.5.2" < "3.4.1" (false)
"3.5.2" > "3.4.0015" (true)
Это явно недействительные числа в javascript, но каким-то образом движок JS сравнивает строковые значения таким образом, чтобы все работало. Может ли кто-нибудь дать некоторое представление о том, как это делает движок JS? Я работаю на V8.
3
предшествует4
, поэтому"3" < "4"
завершается успешно. Однако это означает, что"4" < "30"
равноfalse
, поскольку4
идет после3
. - person VLAZ   schedule 12.09.2019"100" < "9"
, потому что 1 предшествует 9, а 100 не считается одним целым. Numerical сравнит значение всего числа, где100 > 9
- person Shilly   schedule 12.09.2019