powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JavaScript Не все переменные - глобальны?
8 сообщений из 8, страница 1 из 1
JavaScript Не все переменные - глобальны?
    #36546663
Massiks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как так получается?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
test = null;

alert(test); // равна null
    
if (!test){
            $.post("test.php",{id: "id"}, function(data){
                        test= 1 ;
                        alert(test);// равна  1 
                        test = data;
                        alert(test);// равна ответу сервера  1234567 
                        });
            }

alert(test); // САМОЕ интересное - равна null   !!!!!
...
Рейтинг: 0 / 0
JavaScript Не все переменные - глобальны?
    #36546671
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
if (test is null) 
?
...
Рейтинг: 0 / 0
JavaScript Не все переменные - глобальны?
    #36546692
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MassiksКак так получается?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
var test = null;

alert(test); // равна null
    
if (!test){
            $.post("test.php",{id: "id"}, function(data){
                        test= 1 ;
                        alert(test);// равна  1 
                        test = data;
                        alert(test);// равна ответу сервера  1234567 
                        });
            }

alert(test); // САМОЕ интересное - равна null   !!!!!

А так?
...
Рейтинг: 0 / 0
JavaScript Не все переменные - глобальны?
    #36546693
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy
Код: plaintext
if (test is null) 
?
У него замыкания не происходит внутри обработчика AJAX ответа.
...
Рейтинг: 0 / 0
JavaScript Не все переменные - глобальны?
    #36546694
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavaScript Не все переменные - глобальны?
Кто ВАм такое сказал? Собственно, так и должно быть. А проблема-то в чём?
Хотите глобальную, в своей функции напишите не test=1; , а window.test=1;
...
Рейтинг: 0 / 0
JavaScript Не все переменные - глобальны?
    #36546696
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge,

неа, должно происходит замыкание без window.
...
Рейтинг: 0 / 0
JavaScript Не все переменные - глобальны?
    #36546701
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nymShSerge,

неа, должно происходит замыкание без window.
Да это я криво написал. Я о том говорю, что "глобальные" переменные, это те, которые растут от window.
...
Рейтинг: 0 / 0
JavaScript Не все переменные - глобальны?
    #36546704
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MassiksКак так получается?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
test = null;

alert(test); // равна null
    
if (!test){
            $.post("test.php",{id: "id"}, function(data){
                        test= 1 ;
                        alert(test);// равна  1 
                        test = data;
                        alert(test);// равна ответу сервера  1234567 
                        });
            }

alert(test); // САМОЕ интересное - равна null   !!!!!

Ой, с утра не заметил. Поскольку AJAX асинхронен, то function(data) { ... } исполнится в другом скоупе, позже, а конечный alert(test) произойдет сразу после посыла запроса. Т. е. всё работает правильно, просто вам нужен workaround на асинхронную сущность JS.

Сравните
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
var test =  0 ;
		if (!test) {
			setTimeout(function() {
				++test;
			},  1000 );
		}
		setTimeout(function() {
			alert(test);
		},  5000 );
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JavaScript Не все переменные - глобальны?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]