Страницы: 1
Извините, я что-то сегодня ничего не соображаю
Подскажите, пожалуйста, почему такой код:
В firefox 3.0.6 выводит "false"?
Отсутствует
Объекты-то разные каждый раз создаются!!! Каждый вызов процедуры "new"
создает свой объект строкового типа и адресация у объектов разная и объекты
сами хоть и принадлежат к классу строк, но идентифицируются как разные.
Продам: совесть, ответственность, вежливость, воспитанность. Недорого.
Отсутствует
Что-то я совсем туплю сегодня в самом деле. Ну разумеется, объекты разные. Но здесь ведь "==" должен значения строк сравнивать? Значения ведь у них одинаковые?
Как же мне тогда сравнить две строки?
Отсутствует
Прежде всего z1 и z2 это переменные-объекты у которых есть свои
свойства, атрибуты и методы. Сравнивая два разных объекта получите
false. Как у Вас в Java(Script) я не совсем знаю, ибо сам "делфист",
но по-моему тут будет уместно (а может и нет) сделать так:
alert(z1.value==z2.value);
Но результат не гарантирую...
Продам: совесть, ответственность, вежливость, воспитанность. Недорого.
Отсутствует
Как же мне тогда сравнить две строки?
Бывают объекты, а бывают примитивные значения.
alert(typeof new String("a")); alert(typeof "a"); alert(typeof (new String("a").valueOf()));
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Вообще, пользы от
обычно никакой.
Что мешает сделать
?
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Infocatcher: Спасибо, пойду читать.
Просто нужно чужой код поправить, а там было объявление через new.
Вообще говоря, странно. z=new String("a"); alert(z) ведь без проблем выведет примитивное значение...
Отредактировано alex_past (02-03-2009 19:30:43)
Отсутствует
Вообще говоря, странно. z=new String("a"); alert(z) ведь без проблем выведет примитивное значение...
При выполнении alert происходит преобразование типов.
Как и при, например
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Да, это я понимаю.
А "==" в моём куске кода, выходит, сравнивает адреса строковых объектов вместо их примитивных значений? Жуть какая... А я, балбес, был уверен, что он как раз valueOf-ы сравнивать должен.
Спасибо!
Отредактировано alex_past (02-03-2009 20:12:10)
Отсутствует
Страницы: 1