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

Аватар пользователя Aleksey
Aleksey
05 апреля 2023

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

Number('10') > '2' // true
'10' > Number('2') // true
1 0
Аватар пользователя Ivan Gagarinov
Ivan Gagarinov
19 июля 2022

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

0 0

Есть что добавить? Зарегистрируйтесь

или войдите в аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Курсы по программированию в Хекслете

Программирование

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

Тест-драйв

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки

Бесплатные курсы

Бесплатные курсы по тестированию, дата-аналитике, верстке, программированию на Python, Java, PHP и JavaScript.