Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   string не преобразовывается в number (https://javascript.ru/forum/events/41563-string-ne-preobrazovyvaetsya-v-number.html)

evm-dev 19.09.2013 11:03

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 ...

Подскажите, пожалуйста, что не так? Возможно я чего-то не понимаю, подскажите.

рони 19.09.2013 11:10

Цитата:

Сообщение от evm-dev
if (this == 1)

что такое this ?

evm-dev 19.09.2013 11:26

колбэк-функция вызвана методом call ей первым параметром передается контекст, в котором она будет запущена: в данном случае responseText , на который я и ссылаюсь с помощью this внутри функции.

devote 19.09.2013 11:37

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

callback.call('1');

evm-dev 19.09.2013 11:53

+this возвращает NaN
Number(this) возвращает NaN
parseInt(this) возвращает NaN,
но в this находится цифра - 0 или 1

evm-dev 19.09.2013 12:21

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


Часовой пояс GMT +3, время: 00:28.