Я задаюсь вопросом, почему следующие работы:Javascript сравнения номер строки
oldversion = "1.3.52";
newversion = "1.3.54";
if (newversion > oldversion) {
console.log('test');
}
Но это не так:
if (1.3.54 > 1.3.52) {
console.log('test');
}
Я знаю, что последний пример не будет работать, потому что они не реальные цифры , Но пока я пытаюсь выяснить, что делает javascript, когда он встречает строку с номером в ней.
Это то, что я нашел на w3:
При сравнении строки с числом, JavaScript преобразует строку в число при выполнении сравнения.
Так как же оно преобразует строку в число, и вдруг я больше не получаю Uncaught SyntaxError: Unexpected number
?
'1.3.54' это не число, просто как это. '1' - это число или' 1.3' - это число, но добавление дополнительных точек недопустимо. – vlaz
Я заявляю в своем посте, что я это понимаю. Это не объясняет, почему мой другой пример работает. Вот что я хочу узнать. –
Это просто сравнение строк. Поэтому использование этого для проверки версий было бы неправильным. – Keith