Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.07.2009, 03:12
Новичок на форуме
Отправить личное сообщение для zorro Посмотреть профиль Найти все сообщения от zorro
 
Регистрация: 09.07.2009
Сообщений: 3

Строковые операторы\оператор сравнения
"11" < "3" // Строковое сравнение. Результат равен true.
Не могу понять почему так. Объясните пожалуйста. Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 09.07.2009, 06:12
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Если один из сравниваемых - число, то делается попытка второго сделать так же числом. Если две строки, то начинается посимвольное сравнение (используются коды символов). Где то на этом сайте было очень четко расписано, что и как сравнивается. Может найдется здесь: http://javascript.ru/ecma
Ответить с цитированием
  #3 (permalink)  
Старый 09.07.2009, 07:28
Новичок на форуме
Отправить личное сообщение для zorro Посмотреть профиль Найти все сообщения от zorro
 
Регистрация: 09.07.2009
Сообщений: 3

Собственно с остальными сравнениями разных типов понятно, а тут хоть убей не понимаю. ведь даже если я напишу "11111111" < "3" //результат будет true
Совсем видно зеленый и не могу въехать почему так. Или это особенность оператора <, что в результате сравнивания двух строк будет всегда true?
Здесь тоже самое написоно что и вы сказали, но я значит не понимаю как все таки этот оператор со стороками работает.

Используются коды символов - если я правильно понимаю, то вот допустим что код для 1 будет \uxxx, значит для 11 - \uxxx\uxxx.
Для тройки \uyxx.

Значит при сравнении тройка все равно будет меньше чем 11 или 11111 и так далее? Проясните пожалуйста, если представляете о чем я спрашиваю. Я правда хочу разобраться!
Ответить с цитированием
  #4 (permalink)  
Старый 09.07.2009, 08:04
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Посимвольное сравнение - т. е. берем первые символы сравниваемых строк, сравниваем их коды, если равны то следующие, вторые, символы, как только не равны, то больше тот, у кого код больше. При сравнении "11" < "3" сравниваются "1" и "3", их коды 49 и 51.
Ответить с цитированием
  #5 (permalink)  
Старый 09.07.2009, 09:55
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Строки сравниваются лексикографически, по алфавиту т.е. (ну почти).
Ответить с цитированием
  #6 (permalink)  
Старый 09.07.2009, 10:23
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Kolyaj
Строки сравниваются лексикографически, по алфавиту т.е. (ну почти).
Сообщение от Riim
Посимвольное сравнение - т. е. берем первые символы сравниваемых строк, сравниваем их коды
Разве это не одно и тоже?!
Ответить с цитированием
  #7 (permalink)  
Старый 09.07.2009, 11:19
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Ну кто-то должен был написать слово "лексикографически" То же самое, да.
Ответить с цитированием
  #8 (permalink)  
Старый 09.07.2009, 11:23
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Kolyaj
Ну кто-то должен был написать слово "лексикографически"

Нет, просто обязан...
Ответить с цитированием
  #9 (permalink)  
Старый 10.07.2009, 09:01
Новичок на форуме
Отправить личное сообщение для zorro Посмотреть профиль Найти все сообщения от zorro
 
Регистрация: 09.07.2009
Сообщений: 3

Мда, ну вот теперь славо богу дошло
Спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск