Переменные - мои злейшие враги
Привет всем. Делаю програму, столкнулся с паролями... Вобщем то не в паролях дело, а в одной переменной:
var p=0;
function zapros()
{window.alert('p = '+p+' | из начала функции ');
if (p!=1)
{window.alert('p = '+p+' | если р не 1 ');
if (prompt('Введите пароль.', '')=='13u')
{s();p=1;}}
else
{window.alert('p = '+p+' | из если р - 1 ');s();}}
function s()
{if (confirm('В следующий раз запрашивать пароль?')==true)
{p=0;
window.alert('p = '+p+' | р изменён ');}}
Переменная р в функции s обнуляется, но когда я снова обращаюсь к функции zapros она равна 1. Консоль ошибок невыдаёт, код тоже вроде правильный. В чём дело??? |
Для начала в форматировании кода. У вас вообще непонятно, какой код к чему относится.
|
var p=0;
function zapros()
{
// Окно для проверки -->
window.alert('p = '+p+'| из начала функции ');
// Окно для проверки -->
if (p!=1)
{
// Окно для проверки -->
window.alert('p = '+p+'| если р не 1 ');
// Окно для проверки -->
// Окно для ввода паролей (сравниваем введённый с правильным) -->
if (prompt('Введите пароль.', '')=='13u')
{s();p=1;}}
// Окно для ввода паролей (сравниваем введённый с правильным) -->
else
{// Окно для проверки -->
window.alert('p = '+p+'| из если р - 1 ');
// Окно для проверки -->
s();}}
function s()
{// Спрашиваем "В следующий раз запрашивать пароль?" -->
if (confirm('В следующий раз запрашивать пароль?')==true)
{// Спрашиваем "В следующий раз запрашивать пароль?" -->
{p=0;
window.alert('p = '+p+'| р изменён ');}}}
// Там где-то есть кнопка по нажатию которой запускаеттся функция zapros() ... -->
|
Форматирование кода -- это не комментарии, которые зачем-то переводят код на русский язык. Это отступы и пробелы, которые помогают читать код.
А где вы обращаетесь к функции zapros? |
Вот полный код
<html> <head> <title>тест</title> <meta http-equiv="content-type" content="text/html; charset="UTF 8"> <script>
var p=0;
function zapros()
{
// Окно для проверки -->
window.alert('p = '+p+'| из начала функции ');
// Окно для проверки -->
if (p!=1)
{
// Окно для проверки -->
window.alert('p = '+p+'| если р не 1 ');
// Окно для проверки -->
// Окно для ввода паролей (сравниваем введённый с правильным) -->
if (prompt('Введите пароль.', '')=='13u')
{s();p=1;}}
// Окно для ввода паролей (сравниваем введённый с правильным) -->
else
{// Окно для проверки -->
window.alert('p = '+p+'| из если р - 1 ');
// Окно для проверки -->
s();}}
function s()
{// Спрашиваем "В следующий раз запрашивать пароль?" -->
if (confirm('В следующий раз запрашивать пароль?')==true)
{// Спрашиваем "В следующий раз запрашивать пароль?" -->
{p=0;
window.alert('p = '+p+'| р изменён ');}}}
// Там где-то есть кнопка по нажатию которой запускаеттся функция zapros() ... -->
</script> </head> <body> <input type="button" value="-для админа-" onclick=zapros()> </body> </html> З.Ы. - Цитата:
|
p < глобальная переменная
s(); < здесь вы ей устанавливаете значение 0 p=1; < а здесь снова 1 |
Ну ясно тогда.
|
Сам как то думал как и почему, пока не сказали что я локально внутри функции объявил такую же переменную))) при существовании глобальной
|
Через var надо объявлять, во-первых, а во-вторых, надо нормальные названия давать, а не однобуквенные.
|
Цитата:
|
| Часовой пояс GMT +3, время: 01:53. |