Javascript.RU

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

string не преобразовывается в number
После обработки сервером ajax-запроса, сервер отправляет ответ таким образом:
echo 1;
. Получая ответ, я пытаюсь проверить это значение на равенство, т.е. ответ сервера == 1, но не происходит преобразования типов: постоянно дает false.

this.sendRequest = function(sendstr, callback){
		this.xmlHttp.open("POST", this.validator, true);
		this.xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
		this.xmlHttp.send(sendstr);
		this.xmlHttp.onreadystatechange = function(){
			if (this.readyState === 4){
				if (this.status === 200){
					callback.call(this.responseText);
				}
			}
		};
	};

тут я получаю ответ и передаю его в колбэк-функцию.

в колбэк-функции пытаюсь проверить таким образом:
if (this == 1) ... else ...

Подскажите, пожалуйста, что не так? Возможно я чего-то не понимаю, подскажите.
Ответить с цитированием
  #2 (permalink)  
Старый 19.09.2013, 11:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,078

Сообщение от evm-dev
if (this == 1)
что такое this ?
Ответить с цитированием
  #3 (permalink)  
Старый 19.09.2013, 11:26
Новичок на форуме
Отправить личное сообщение для evm-dev Посмотреть профиль Найти все сообщения от evm-dev
 
Регистрация: 19.09.2013
Сообщений: 5

колбэк-функция вызвана методом call ей первым параметром передается контекст, в котором она будет запущена: в данном случае responseText , на который я и ссылаюсь с помощью this внутри функции.
Ответить с цитированием
  #4 (permalink)  
Старый 19.09.2013, 11:37
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

function callback() {
    if (+this === 1) {
        alert('Ololo');
    }
}

callback.call('1');
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 19.09.2013, 11:53
Новичок на форуме
Отправить личное сообщение для evm-dev Посмотреть профиль Найти все сообщения от evm-dev
 
Регистрация: 19.09.2013
Сообщений: 5

+this возвращает NaN
Number(this) возвращает NaN
parseInt(this) возвращает NaN,
но в this находится цифра - 0 или 1
Ответить с цитированием
  #6 (permalink)  
Старый 19.09.2013, 12:21
Новичок на форуме
Отправить личное сообщение для evm-dev Посмотреть профиль Найти все сообщения от evm-dev
 
Регистрация: 19.09.2013
Сообщений: 5

Как обычно проблема в кодировках. Всем спасибо.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сценарий, который сможет словами написать заданное число Елена1991 Общие вопросы Javascript 10 02.12.2015 10:57
Ошибка unterminated string literal ka0s Общие вопросы Javascript 8 30.05.2012 13:12
String to Number teles Общие вопросы Javascript 5 09.04.2012 08:53
Помогите с таблицей(убрать столбцы) Lexxbry Элементы интерфейса 17 02.09.2011 02:01
1. Календарь 2. объект String метод getEMail Мандариновая Общие вопросы Javascript 8 31.10.2008 11:33