(Я очень новичок в JavaScript, и я пишу это, чтобы попытаться привыкнуть к его использованию немного больше - вот почему я использую объект для хранения имен пользователей и паролей. Я изучаю это как часть ученичества, но это в мое личное время, чтобы дополнить мои знания в JS). Я пробовал написать небольшой фрагмент кода, который должен попросить пользователя ввести имя пользователя, которое будет перепроверено против имена свойств в объекте «userNames». Затем пользователю предлагается ввести пароль для этого пользователя, который затем проверяется на установленный пароль как значение соответствующего свойства с правильным именем пользователя. Я чувствую, что часть проблемы связана со мной, пытаясь использовать переменную «ВведенаПассификатор» (установлен на вход пользователя для пароля как метод) «userNames». Если имя пользователя или пароль неверны после трех попыток, я хотел бы закрыть окно. мой текстовый редактор говорит, что в инструкции If отсутствует ветка, и я не уверен, влияет ли это на то, работает это или нет.If/Else statement inested in While loop
var userNames = {Tom:"PassW0rd", Bill:"Apples40C0lander", Ryan:"M1911p4ck4ge"};
var Greeting = "Insert Username:";
var i = 0;
while (i < 3)
{
var enteredUserName = prompt(Greeting);
var enteredPassword = prompt("enter password for " + enteredUserName);
if ((userNames.hasOwnProperty(enteredUserName)) && (userNames.enteredUserName==enteredPassword)) {
alert("Welcome");
break;
} else {
alert("incorrect Username or Password");
alert("");
window.open('', '_self', ''); window.close();
window.open('', '_self', ''); window.close();
i++
}}
Удалите точку с запятой после 'if'-заявление –
вы не увеличивающиеся я, так что я <3 всегда верно, и вы Creat бесконечный цикл – StackOverMySoul
Код не компилируется из-за 'semicolon' после' if-statement'. Точка с запятой закрывает все 'if', поэтому' else' больше не принадлежит ему -> синтаксическая ошибка. Он интерпретируется как «короткое письмо» 'if' только с одной командой. Синтаксис таков: 'if (выражение) command;'. Вы видите, что '' '' '' '' '' '' '' необходимо, если вы используете только одну команду. Единый ';' без чего-либо интерпретируется как «пустая команда», поэтому 'if (выражение); 'завершает' if'. – Zabuza