/
Вопросы и ответы
/
JavaScript
/

Почему условие '10' > '2' возвращает false, ведь 10 больше чем 2

Почему условие '10' > '2' возвращает false, ведь 10 больше чем 2

3 года назад

Ivan Gagarinov

Ответы

1

Если при сравнении '10' > '2' мы хотим получить результат как численных величин, достаточно привести любой из операндов к числу. Тогда данное выражение будет выдавать результат, совпадающий с математическим сравнением:

Number('10') > '2' // true
'10' > Number('2') // true

2 года назад

Aleksey

0

Если бы сравнивались числа, то условие бы работало так, как и ожидалось: число 10 больше 2. Но сравниваются строки, а не числа. И строка '10' меньше чем строка '2'. Так интерпретатор работает. Он сравнивает первые символы в строках и проверяет, какой символ идёт раньше в алфавитной последовательности (или в числовой). Например 'bca' > 'abc' - здесь 'b' идёт после 'a', поэтому 'bca' будет считаться больше, чем 'abc'. 2 идет после 1, поэтому интерпретатор считает строку '10' меньше, чем строка '2', как если бы он сравнивал строку 'ab' со строкой 'c'.

3 года назад

Ivan Gagarinov